Type equality evidence you can carry around

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

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

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

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

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

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

Optional extensions: PolyKinds (GHC 7.6+)

Minimum GHC: 6.10

Related packages: