This is either a bug in the function ER(N) ("square root of N")
or I might be using the function outside its defined domain :
the manual requires that N is a positive integer (see "ATALS
irrationalities"), but I agree 'ER' should either signal an error or
give the expected result or the manual should be even more definite in
restricting the domain.
However, one could write a square root function as
SquareRootInt := function(N) if N < 0 then return EI(-N); elif 0 < N then return ER(N); else return 0; fi; end;