Module
Data.Leibniz
- Package
- purescript-leibniz
- Repository
- paf31/purescript-leibniz
This module defines a data type for Leibniz equality.
#runLeibniz Source
runLeibniz :: forall b a f. a ~ b -> f a -> f bUnpack a Leibniz equality.
#coerceSymm Source
coerceSymm :: forall b a. a ~ b -> b -> aCoerce a value of type b to a value of the Leibniz-equal type a.
#liftLeibniz Source
liftLeibniz :: forall b a f. a ~ b -> (f a) ~ (f b)Lift equality over a type constructor.
#liftLeibniz1of2 Source
liftLeibniz1of2 :: forall c b a f. a ~ b -> (f a c) ~ (f b c)Lift equality over a type constructor.
#liftLeibniz2of2 Source
liftLeibniz2of2 :: forall c b a f. a ~ b -> (f c a) ~ (f c b)Lift equality over a type constructor.
#liftLeibniz1of3 Source
liftLeibniz1of3 :: forall d c b a f. a ~ b -> (f a c d) ~ (f b c d)Lift equality over a type constructor.
#liftLeibniz2of3 Source
liftLeibniz2of3 :: forall d c b a f. a ~ b -> (f c a d) ~ (f c b d)Lift equality over a type constructor.
#liftLeibniz3of3 Source
liftLeibniz3of3 :: forall d c b a f. a ~ b -> (f c d a) ~ (f c d b)Lift equality over a type constructor.
#lowerLeibniz Source
lowerLeibniz :: forall b a f. (f a) ~ (f b) -> a ~ bEvery type constructor in PureScript is injective.
#lowerLeibniz1of2 Source
lowerLeibniz1of2 :: forall d c b a f. (f a c) ~ (f b d) -> a ~ bEvery type constructor in PureScript is injective.
#lowerLeibniz2of2 Source
lowerLeibniz2of2 :: forall d c b a f. (f a c) ~ (f b d) -> c ~ dEvery type constructor in PureScript is injective.
#lowerLeibniz1of3 Source
lowerLeibniz1of3 :: forall g e d c b a f. (f a b c) ~ (f d e g) -> a ~ dEvery type constructor in PureScript is injective.
#lowerLeibniz2of3 Source
lowerLeibniz2of3 :: forall g e d c b a f. (f a b c) ~ (f d e g) -> b ~ eEvery type constructor in PureScript is injective.
#lowerLeibniz3of3 Source
lowerLeibniz3of3 :: forall g e d c b a f. (f a b c) ~ (f d e g) -> c ~ gEvery type constructor in PureScript is injective.
- Modules
- Data.
Leibniz