Cascade-0.1.0.0: Playing with reified categorical composition

Safe HaskellNone
LanguageHaskell2010

Cascade.Sum

Documentation

data SumW w ts where Source

Constructors

Here :: w a -> SumW w (a : as) 
There :: SumW w as -> SumW w (a : as) 

Instances

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

type family SumW' w ts Source

Equations

SumW' w [] = Void 
SumW' w (a : as) = Either (w a) (SumW' w as) 

toEither :: SumW w as -> SumW' w as Source

here :: a -> Sum (a : as) Source

there :: Sum as -> Sum (a : as) Source

type family TailSumsW w ts :: [*] Source

Equations

TailSumsW w [] = [] 
TailSumsW w (a : as) = SumW w (a : as) : TailSumsW w as 

pops :: Monad m => (w x -> m (w y)) -> SumW w (x : (y : zs)) -> m (SumW w (y : zs)) Source

resumeC :: Monad m => (forall a b. c a b -> w a -> m (w b)) -> CascadeC c ts -> CascadeM m (TailSumsW w ts) Source

resumeM :: Monad m => CascadeM m ts -> CascadeM m (TailSums ts) Source