 
 # -- Setting the number base (maximal digit value - 1) and its square root
 
-rdump = (s) -> "#{if s then s.toArray().join('|') else '[]'}"
+rdump = (s) -> "#{if s then s.into([]).join('|') else '[]'}"
 dump = (s) -> rdump s?.reverse()
 
 if quicktest

      if s.first() % 2 == 1
        recur -> step(mul(p, r), r, sub(s, ONE))
      else
        recur -> step(p, mul(r, r), div(s, TWO))
    else
      p
  resolve step(ONE, r, s)


  constructor: (n = 0) ->
    make_digits = (m) ->
      if m then Sequence.conj(m % BASE, -> make_digits(Math.floor m / BASE))

    [m, @sign__] = if n < 0 then [-n, -1] else [n, 1]
    @digits__ = Sequence.stored make_digits m

  create = (digits, sign) ->
    n = new LongInt()
    n.digits__ = Sequence.stored digits
    n.sign__ = sign
    n

