Name: type-digits Version: 0.2 License: BSD3 License-File: LICENSE Author: Nicolas Frisby Maintainer: Nicolas Frisby Category: Type System Synopsis: Arbitrary-base type-level digits Description: 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. Cabal-Version: >= 1.6.0.1 Build-Type: Simple Library Build-Depends: base >= 4 && < 5, template-haskell Build-Depends: type-spine >= 0.2 Exposed-Modules: Type.Digits, Type.Digits.Aux, Type.Digits.Stage0, Type.Digits.Stage1