This package provides a version of Prelude where
unary and binary operations such as not, +, ==
have their result type derived from the parameter type(s)
and thus supports mixed-type arithmetic and comparisons.
Partial operations such as division, sqrt and power
do not throw exceptions even when errors such as division by zero
occur. Instead, these errors are propagated bottom-up in
a bespoke error-accumulating functor.
This library is a by-product of developing the
AERN2 library for interval and exact real computation.
Certain aspects are specifically tailored for interval or exact real arithmetics,
including three-valued numerical comparisons
and distinguishing potential and certain errors.
See module MixedTypesNumPrelude for further documentation.
Ghci 8.0.* fails when loading this package due to ghc bug 13385.
This bug does not affect ghci 7.10.3 and ghci 8.2.* and above.
Changes
mixed-types-num change log
v 0.4.1 2019-04-11
fix infinite loop in some conversions
v 0.4.0 2019-04-10
eliminated dependency on convertible, improving ghcjs compatibility
v 0.3.2 2019-01-08
added divI and mod
added enforceRange
used enforceRange in exp tests
v 0.3.1.5 2018-11-14
improved documentation
v 0.3.1.4 2017-12-06
removed upper bounds for dependencies
v 0.3.1.3 2017-08-22
fixed bound on base in test suite
v 0.3.1.2 2017-08-15
provided compatible versions of take, drop, length, replicate, splitAt
added missing mixed-type subtraction combination to Ring etc.
v 0.3.0.1 2017-08-01
improve package documentation in module MixedTypesNumPrelude
v 0.3 2017-08-01
renamed the main module to MixedTypesNumPrelude
much faster compilation
Ring and Field are now classes, not synonyms for large sets of constraints
many fixes in collect-error framework and its use in division and power
Overloaded if-then-else via -XRebindableSyntax
compiling with ghc 8.2.1
v 0.2.0.1
fix compilation bug in test suite
minor doc improvements
fix Complex instances of error-throwing division (/!)
v 0.2
new CollectErrors wrapper
CN, specialisation of CollectErrors to NumErrors
numerical partial operators (eg division) return a CN type