# 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-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.

## Properties

Versions | 0.1, 0.1.0.1, 0.1.0.2, 0.2, 0.3 |
---|---|

Change log | None available |

Dependencies | base (==4.*), template-haskell, type-spine (>=0.2) [details] |

License | BSD3 |

Author | Nicolas Frisby <nicolas.frisby@gmail.com> |

Maintainer | Nicolas Frisby <nicolas.frisby@gmail.com> |

Category | Type System |

Uploaded | Wed Jul 31 04:40:07 UTC 2013 by NicolasFrisby |

Downloads | 771 total (22 in last 30 days) |

Votes | |

Status | Docs uploaded by user Build status unknown [no reports yet] |

## Modules

[Index]

## Downloads

- type-digits-0.3.tar.gz [browse] (Cabal source package)
- Package description (included in the package)

#### Maintainers' corner

For package maintainers and hackage trustees