Cascade-0.1.0.0: Playing with reified categorical composition

Safe HaskellNone
LanguageHaskell2010

Cascade.Product

Documentation

data ProductM m ts where Source

Constructors

None :: ProductM m [] 
(:*) :: a -> m (ProductM m ts) -> ProductM m (a : ts) infixr 5 

Instances

(Show a, Show (ProductM Identity as)) => Show (ProductM Identity ((:) * a as)) 
Show (ProductM Identity ([] *)) 

(*:) :: a -> Product ts -> Product (a : ts) infixr 5 Source

type family RInitProducts ts ts' :: [*] Source

Equations

RInitProducts (a : as) ts' = Product (a : ts') : RInitProducts as (a : ts') 
RInitProducts [] ts' = [] 

pushes :: Comonad w => (w y -> x) -> w (Product (y : zs)) -> Product (x : (y : zs)) Source

recordW :: Comonad w => CascadeW w (t : ts) -> CascadeW w (RInitProducts (t : ts) ts') Source

record :: Cascade (t : ts) -> Cascade (RInitProducts (t : ts) ts') Source