The big win here is that we can have special int vs double constructors for Fn, which means we can use Real(1) semantics instead of Real(1.0) for data.
Doing this exposed a weakness in FractionDecimal where you can overflow Long too easily; we switched to Double for the numerator and denominator so that you just lose precision vs overflow when this happens.
The big win here is that we can have special
int
vsdouble
constructors forFn
, which means we can useReal(1)
semantics instead ofReal(1.0)
for data.Doing this exposed a weakness in
FractionDecimal
where you can overflowLong
too easily; we switched toDouble
for the numerator and denominator so that you just lose precision vs overflow when this happens.