type-digits: Arbitrary-base type-level digits
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-ord
and type-cereal
packages for use
cases; they ultimately support the yoko
package.
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. Type.Digits.digit
computes
the 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.
Downloads
- type-digits-0.3.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1, 0.1.0.1, 0.1.0.2, 0.2, 0.3 |
---|---|
Dependencies | base (>=4 && <5), template-haskell, type-spine (>=0.2) [details] |
License | BSD-3-Clause |
Author | Nicolas Frisby <nicolas.frisby@gmail.com> |
Maintainer | Nicolas Frisby <nicolas.frisby@gmail.com> |
Category | Type System |
Uploaded | by NicolasFrisby at 2013-07-31T04:40:07Z |
Distributions | |
Reverse Dependencies | 4 direct, 1 indirect [details] |
Downloads | 3551 total (18 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |