Cascade-0.1.0.0: Playing with reified categorical composition

Safe HaskellNone
LanguageHaskell2010

Cascade

Documentation

data CascadeC c ts where Source

Constructors

(:>>>) :: c x y -> CascadeC c (y : zs) -> CascadeC c (x : (y : zs)) infixr 1 
Done :: CascadeC c `[t]` 

transform :: (forall a b. c a b -> c' a b) -> CascadeC c ts -> CascadeC c' ts Source

cascade :: Category c => CascadeC c (t : ts) -> c t (Last (t : ts)) Source

type Cascade = CascadeC (->) Source

(>=>:) :: (x -> m y) -> CascadeM m (y : zs) -> CascadeM m (x : (y : zs)) infixr 1 Source

cascadeM :: Monad m => CascadeM m (t : ts) -> t -> m (Last (t : ts)) Source

wrapM :: Monad m => Cascade ts -> CascadeM m ts Source

(=>=:) :: (w x -> y) -> CascadeW w (y : zs) -> CascadeW w (x : (y : zs)) infixr 1 Source

cascadeW :: Comonad w => CascadeW w (t : ts) -> w t -> Last (t : ts) Source

wrapW :: Comonad w => Cascade ts -> CascadeW w ts Source