@hackage type-level-natural-number2.0
Simple type level natural numbers
Categories
License
BSD-3-Clause
Maintainer
Gregory Crosswhite <gcrosswhite@gmail.com>
Links
Versions
Installation
Dependencies (1)
Dependents (8)
@hackage/type-level-natural-number-operations, @hackage/acme-everything, @hackage/temporal-music-notation, @hackage/tagged-list, @hackage/variable-precision, @hackage/natural-number, Show all…
This is a simple implementation of type-level natural numbers that only requires DeriveDataTypeable. Operations requiring more language extensions have been split into a separate package.
The difference between this package and the many others on Hackage implementing type-level naturals is its emphasis on simplicity. It only supports non-negative natural numbers, and only the successor and predicessor operations. It represents natural numbers using a type-level linked list, so it is not intended to be used for representing large numbers. Pre-defined aliases for natural numbers up to 15 are provided.
The code for this package was largely taken from the excellent Vec package; I created this package with the intent of making this functionality more widely available.
Difference from 1.0: Added instances for Typeable, and word synonyms for N0...N15.
Difference from 1.1: Performance enhancements for naturalNumberAsInt. Simplified Show implementation.
Difference from 1.1.1: Gave up on Haskell 2010 compatibility since as of GHC 7.8 manually deriving from Typeable is no longer allowed; now I use DeriveDataTypeable to construct the instances.