record Morphism : Type -> Type -> Type
.applyMor : Morphism a b -> a -> b
Applicative (Morphism r)
Cast (Endomorphism a) (Morphism a a)
Cast (Morphism a a) (Endomorphism a)
Cast (Morphism a (f b)) (Kleislimorphism f a b)
Cast (Kleislimorphism f a b) (Morphism a (f b))
Cast (Morphism a b) (Op b a)
Cast (Op b a) (Morphism a b)
Functor (Morphism r)
Monad (Morphism r)
Monoid a => Monoid (Morphism r a)
Semigroup a => Semigroup (Morphism r a)
.applyMor : Morphism a b -> a -> b
applyMor : Morphism a b -> a -> b
(~>) : Type -> Type -> Type
record Endomorphism : Type -> Type
Endo : (a -> a) -> Endomorphism a
.applyEndo : Endomorphism a -> a -> a
Cast (Endomorphism a) (Morphism a a)
Cast (Morphism a a) (Endomorphism a)
Cast (Endomorphism a) (Op a a)
Cast (Op a a) (Endomorphism a)
Monoid (Endomorphism a)
Semigroup (Endomorphism a)
.applyEndo : Endomorphism a -> a -> a
applyEndo : Endomorphism a -> a -> a
record Kleislimorphism : (Type -> Type) -> Type -> Type -> Type
Kleisli : (a -> f b) -> Kleislimorphism f a b
.applyKleisli : Kleislimorphism f a b -> a -> f b
Applicative f => Applicative (Kleislimorphism f a)
Cast (Morphism a (f b)) (Kleislimorphism f a b)
Cast (Kleislimorphism f a b) (Morphism a (f b))
Cast (Op (f b) a) (Kleislimorphism f a b)
Cast (Kleislimorphism f a b) (Op (f b) a)
Functor f => Functor (Kleislimorphism f a)
Monad f => Monad (Kleislimorphism f a)
(Monoid a, Applicative f) => Monoid (Kleislimorphism f r a)
(Semigroup a, Applicative f) => Semigroup (Kleislimorphism f r a)
.applyKleisli : Kleislimorphism f a b -> a -> f b
applyKleisli : Kleislimorphism f a b -> a -> f b
record Op : Type -> Type -> Type
.applyOp : Op b a -> a -> b
Cast (Endomorphism a) (Op a a)
Cast (Op a a) (Endomorphism a)
Cast (Op (f b) a) (Kleislimorphism f a b)
Cast (Kleislimorphism f a b) (Op (f b) a)
Cast (Morphism a b) (Op b a)
Cast (Op b a) (Morphism a b)
Contravariant (Op b)
.applyOp : Op b a -> a -> b
applyOp : Op b a -> a -> b