Type level numbers implemented using type families.

Version on this page:
LTS Haskell 12.22:
Stackage Nightly 2018-12-10:
Latest on Hackage:

See all snapshots type-level-numbers appears in

BSD3 licensed and maintained by Alexey Khudyakov

This is type level numbers implemented using type families. Natural numbers use binary encoding. With default context stack numbers up to 2^18-1 coudl be represented. Signed integer numbers use balanced ternary encoding.

Package is structured as folows:

  • [TypeLevel.Number.Classes] contain generic type families such as Add

  • [TypeLevel.Number.Nat] natural numbers implemented using binary encoding

  • [TypeLevel.Number.Int] signed integers implemented using balanced ternary encoding

  • [TypeLevel.Boolean] type level booleans

So far comparison of numbers, subtraction and multiplication of numbers are supported.


Changes in

* Type level addition is fixed for GHC 7.6

* Test suite added to cabal file

Changes in

* withNat, withInt, SomeNat and SomeInt added.

Changes in

* Fix build for GHC 7.4

Changes in

* Fix URL in cabal file

Changes in

* Workaround for GHC bug #4364 (Build failure on GHC 7.0)
Depends on 2 packages:
Used by 1 package:
comments powered byDisqus