An implementation of a decimal point data type, that is backed by any custom integral
type. It is safe, because things like integer overflows, underflows, division by zero
etc. are checked for during the runtime and are prevented in pure code.
Changes
Changelog for safe-decimal
0.2.1
Add arithError
Add RoundHalfToZero and RoundHalfFromZero rounding strategies.
Conversion from Scientific normalizes the input and is more resilient to unbounded
computation for bounded Decimal result.
0.2.0
Add Arith monad and corresponding functions.
Make rounding dependent on precision type (extra type argument to the Round type class)
Rename RoundFloor to RoundDown (with Floor as synonym)
Rename Truncate to RoundToZero (with Truncate as synonym)
Fix conversion fromRational to throw Underflow instead of rounding. Without this fix
there was unexpected behavior on negative numbers.
Addition of scaleUp and scaleUpBounded
Addition of toFixedDecimal, fromFixedDecimal and fromFixedDecimalBounded
Many function renames, just to make sure they all follow the same convention.