This allows types to be collected; prior to this commit they
were conflicting from different modules.
Uses this fix to extend sqrt to bigint, with the convention
that it is undefined for non-perfect squares when 'predictable'
is false and is the "best" approximation to the square root when
'predictable' is true. Furthermore, for negative bigints, you might
get a Gaussian integer when predictable is false; or you will just get
your argument back when 'predictable' is true because what other
bigint could you give back for a negative bigint?
Also had to modify tests on the sign in sqrt(Complex) and add functions
'zero' and 'one' to get types to match, as expected in #27.
Adds numerous tests.
Resolves#26.
Resolves#27.
Also implements a config object that upon change, lazily invalidates
all operations that access it.
Also allows references to signatures with nonexistent types (which
typed-function does not); they come back as undefined.
Uses these features to implement sqrt for number and complex.
Resolves#7.
Also starts each PocomathInstance with no types at all, and uses the new
situation to eliminate the need for a Complex "base case".
Resolves#14.
Resolves#13.
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Reviewed-on: #15