record Morphism : Type -> Type -> Type.applyMor : Morphism a b -> a -> bApplicative (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 -> bapplyMor : Morphism a b -> a -> b(~>) : Type -> Type -> Typerecord Endomorphism : Type -> TypeEndo : (a -> a) -> Endomorphism a.applyEndo : Endomorphism a -> a -> aCast (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 -> aapplyEndo : Endomorphism a -> a -> arecord Kleislimorphism : (Type -> Type) -> Type -> Type -> TypeKleisli : (a -> f b) -> Kleislimorphism f a b.applyKleisli : Kleislimorphism f a b -> a -> f bApplicative 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 bapplyKleisli : Kleislimorphism f a b -> a -> f brecord Op : Type -> Type -> Type.applyOp : Op b a -> a -> bCast (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 -> bapplyOp : Op b a -> a -> b