monad-skeleton-0.1.3.2: Monads of program skeleta

Safe HaskellTrustworthy
LanguageHaskell2010

Control.Monad.Skeleton.Internal

Documentation

data Cat k a b where Source #

Constructors

Empty :: Cat k a a 
Leaf :: k a b -> Cat k a b 
Tree :: Cat k a b -> Cat k b c -> Cat k a c 

Instances

Category k (Cat k k1) Source # 

Methods

id :: cat a a #

(.) :: cat b c -> cat a b -> cat a c #

transCat :: (forall x y. j x y -> k x y) -> Cat j a b -> Cat k a b Source #

(|>) :: Cat k a b -> k b c -> Cat k a c Source #

viewL :: forall k a b r. Cat k a b -> (a ~ b => r) -> (forall x. k a x -> Cat k x b -> r) -> r Source #

transKleisli :: (m b -> n b) -> Kleisli m a b -> Kleisli n a b Source #