Portability | Haskell 98 |
---|---|

Stability | stable |

Maintainer | haskell@henning-thielemann.de |

This module contains internal functions (*Unsafe) that I had liked to re-use in the NumericPrelude type hierarchy. However since the Eq and Ord instance already require the Num class, we cannot use that in the NumericPrelude.

# Documentation

A chunky non-negative number is a list of non-negative numbers. It represents the sum of the list elements. It is possible to represent a finite number with infinitely many chunks by using an infinite number of zeros.

Note the following problems:

Addition is commutative only for finite representations.
E.g. `let y = min (1+y) 2 in y`

is defined,
`let y = min (y+1) 2 in y`

is not.

fromChunks :: C a => [a] -> T aSource

fromNumber :: C a => a -> T aSource

isPositive :: C a => T a -> BoolSource

fromChunksUnsafe :: [a] -> T aSource

toChunksUnsafe :: T a -> [a]Source

This routine exposes the inner structure of the lazy number, and I think it should be used with care.