[Haskell] ANN: binary arithmetic type library over natural kinds

oleg at pobox.com oleg at pobox.com
Thu Mar 8 01:48:02 EST 2007

Chung-chieh Shan and I would like to announce the type-level Haskell
library for arbitrary precision binary arithmetic over natural
kinds. The library supports addition/subtraction,
predecessor/successor, multiplication/division, exp2, full
comparisons, GCD, and the maximum.  At the core of the library are
multi-mode ternary relations Add and Mul where _any_ two arguments
determine the third. Such relations are especially suitable for
specifying static arithmetic constraints on computations. The
type-level numerals have no run-time representation; correspondingly,
all arithmetic operations are done at compile time and have no effect
on run-time.


We used the arithmetic type library to statically enforce validity,
range, size, and alignment constraints of raw memory pointers, and to
statically enforce protocol and time-related constraints when
accessing device registers. The following near final full paper


describes the arithmetic type library, type-level records, type-level
programming with regular Haskell terms, and two sample
applications. We will greatly appreciate all the comments (especially
those received before noon on Friday).

More information about the Haskell mailing list