eq-0.2.0: GADT-based type-level equality

PortabilityGADTs, type operators
Stabilityprovisional
MaintainerEdward Kmett <ekmett@gmail.com>

Data.Eq.Type

Contents

Description

 

Synopsis

Equality

data a := b whereSource

Constructors

Refl :: a := a 

Equality as an equivalence relation

trans :: (a := b) -> (b := c) -> a := cSource

symm :: (a := b) -> b := aSource

coerce :: (a := b) -> a -> bSource

Lifting equality

lift :: (a := b) -> f a := f bSource

lift2 :: (a := b) -> f a c := f b cSource

lift2' :: (a := b) -> (c := d) -> f a c := f b dSource

lift3 :: (a := b) -> f a c d := f b c dSource

lift3' :: (a := b) -> (c := d) -> (e := f) -> g a c e := g b d fSource

Lowering equality

lower :: (f a := f b) -> a := bSource

lower2 :: (f a c := f b c) -> a := bSource

lower3 :: (f a c d := f b c d) -> a := bSource