The type-digits package
This is a workaround until type-level literals (specifically
naturals) are more fully supported. The main difference is that these
types-level digits and numerals can be inspected/case-discriminated within
type family instances. See the
type-cereal packages for use
cases; they ultimately support the
Arbitrary type-level digits, for when the radix itself doesn't
actually matter. It's currently base-128, because that seemed to best
expedite the compilation of the modules with which I using this
package. Please let me know what you find if you experiment with this.
Type.Digits.radix is the (arbitrary) radix.
NameG of a digit from its value (assuming its less than the
radix). Combinators are provided to compute a full type-level numeral from
values (potentially) larger than the radix.
The digits themselves all take less significant numeral as an argument. I
chose this over minimal digits in promoted lists because I wanted to keep the
actual encoding of type-level numeral smaller; they get quite large with some
of my uses and the type family computation becomes quite slow.
|Versions||0.1, 0.1.0.1, 0.1.0.2, 0.2, 0.3|
|Dependencies||base (==4.*), template-haskell, type-spine (>=0.2) [details]|
|Author||Nicolas Frisby <firstname.lastname@example.org>|
|Maintainer||Nicolas Frisby <email@example.com>|
|Uploaded||Wed Sep 12 14:54:55 UTC 2012 by NicolasFrisby|
|Downloads||1041 total (12 in the last 30 days)|
|Status||Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI
For package maintainers and hackage trustees