@hackage type-eq0.1

Type equality evidence you can carry around

This package provides types and combinators to store and manipulate evidence of equality between types.

To take advantage of kind-polymorphism when it is available but not require it, this it is split into the following primary modules:

  • Type.Eq: Types and combinators which can be kind-polymorphic if PolyKinds are available, but are specific to kind * otherwise.

  • Type.Eq.Higher: Kind-monomorphic types and combinators of higher kind, up to * -> * -> *.

  • Type.Eq.Poly: Combinators that require kind-polymorphism. This module is only available if PolyKinds are available.

Support for kind-polymorphism first appeared with GHC 7.4, but because it is too buggy to be practical, it will only be enabled with GHC 7.6.

Major required extensions: GADTs, TypeFamilies (for ~), Rank2Types, TypeOperators

Optional extensions: PolyKinds (GHC 7.6+)

Minimum GHC: 6.10

Related packages: