always revisit nodes independently of "required" flag, which may change during editing -- avoid "bloodbath effect" when changing perspective while loading;
package body Sqrt is
function Isqrt(N: Natural) return Natural
is
R: Natural;
begin
R := 0;
loop
--# assert R * R <= N;
exit when N - R * R < 2 * R + 1;
R := R + 1;
end loop;
return R;
end Isqrt;
end Sqrt;