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 ifPolyKinds
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 ifPolyKinds
are available.
Major required extensions: GADTs
, TypeFamilies
(for ~
), Rank2Types
, TypeOperators
Optional extensions: PolyKinds
(GHC 7.6+)
Minimum GHC: 6.10
Related packages: