packages feed

type-digits-0.2: type-digits.cabal

Name:           type-digits
Version:        0.2
License:        BSD3
License-File:   LICENSE
Author:         Nicolas Frisby <nicolas.frisby@gmail.com>
Maintainer:     Nicolas Frisby <nicolas.frisby@gmail.com>

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