Alternative Prelude with numeric and logic expressions typed bottom-up


Version on this page:
LTS Haskell 22.30:0.5.12
Stackage Nightly 2024-07-23:0.5.12
Latest on Hackage:0.5.12

See all snapshots mixed-types-num appears in

BSD-3-Clause licensed by Michal Konecny
Maintained by Michal Konecny
This version can be pinned in stack with:mixed-types-num-,3625

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.


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 2018-11-14

    • improved documentation
  • v 2017-12-06

    • removed upper bounds for dependencies
  • v 2017-08-22

    • fixed bound on base in test suite
  • v 2017-08-15

    • provided compatible versions of take, drop, length, replicate, splitAt
    • added missing mixed-type subtraction combination to Ring etc.
  • v 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

    • 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
    • instances for Data.Complex
  • v 0.1

    • first release