dynamic-pipeline-0.1.0.5: Library Type Safe implementation of Dynamic Pipeline Paradigm (DPP).
Copyright(c) 2021 Juan Pablo Royo Sales
LicenseBSD3
Maintainerjuanpablo.royo@gmail.com
Stabilityexperimental
PortabilityGHC
Safe HaskellNone
LanguageHaskell2010

DynamicPipeline.Flow

Description

 
Synopsis

Documentation

data Eof Source #

Eof is the End of Channel mark in the DP Definition Flow

Instances

Instances details
MkCh Eof Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChI Eof :: [Type] Source #

type HChO Eof :: [Type] Source #

Methods

mkCh :: Proxy Eof -> IO (HList (HChI Eof), HList (HChO Eof)) Source #

type HChI Eof Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChI Eof = '[] :: [Type]
type HChO Eof Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChO Eof = '[] :: [Type]

data Sink Source #

Sink contains the Sink Stage end of Flow of DP definition.

Instances

Instances details
MkCh inToGen => MkChans (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

Methods

mkChans :: Proxy (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) -> IO (HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)))) Source #

(MkCh inToGen, MkCh genToOut) => MkChans (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source #

Methods

mkChans :: Proxy (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) -> IO (HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) = Record '[Tagged "in-ch" (HList (HChO inToGen)), Tagged "out-ch" (HList (HChI inToGen))]
type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) = Record '[Tagged "Source" (Record '[Tagged "in-ch" (HList (HChI inToGen)), Tagged "out-ch" (HList (HChO inToGen))]), Tagged "generator" (Record '[Tagged "in-ch" (HList (HChI genToOut)), Tagged "out-ch" (HList (HChO genToOut))]), Tagged "Sink" (Record '[Tagged "in-ch" (HList (HChI genToOut))])]

data Generator (a :: Type) Source #

Generator contains the Generator Stage its Channels definitions in the DP definition Flow.

 a ~ Channel

Instances

Instances details
MkCh inToGen => MkChans (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

Methods

mkChans :: Proxy (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) -> IO (HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)))) Source #

(MkCh inToGen, MkCh genToOut) => MkChans (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source #

Methods

mkChans :: Proxy (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) -> IO (HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) = Record '[Tagged "in-ch" (HList (HChO inToGen)), Tagged "out-ch" (HList (HChI inToGen))]
type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) = Record '[Tagged "Source" (Record '[Tagged "in-ch" (HList (HChI inToGen)), Tagged "out-ch" (HList (HChO inToGen))]), Tagged "generator" (Record '[Tagged "in-ch" (HList (HChI genToOut)), Tagged "out-ch" (HList (HChO genToOut))]), Tagged "Sink" (Record '[Tagged "in-ch" (HList (HChI genToOut))])]

data Source (a :: Type) Source #

Source contains the Source Stage its Channels definitions in the DP definition Flow.

 a ~ Channel

Instances

Instances details
MkCh inToGen => MkChans (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

Methods

mkChans :: Proxy (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) -> IO (HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)))) Source #

(MkCh inToGen, MkCh genToOut) => MkChans (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source #

Methods

mkChans :: Proxy (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) -> IO (HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) = Record '[Tagged "in-ch" (HList (HChO inToGen)), Tagged "out-ch" (HList (HChI inToGen))]
type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) = Record '[Tagged "Source" (Record '[Tagged "in-ch" (HList (HChI inToGen)), Tagged "out-ch" (HList (HChO inToGen))]), Tagged "generator" (Record '[Tagged "in-ch" (HList (HChI genToOut)), Tagged "out-ch" (HList (HChO genToOut))]), Tagged "Sink" (Record '[Tagged "in-ch" (HList (HChI genToOut))])]

data Channel (a :: Type) Source #

Channel is the Container Type of Open Union Type which is going to be defined with :<+>.

 a ~ (Type :<+> Type :<+> ... :<+> Eof)

Instances

Instances details
MkCh inToGen => MkChans (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

Methods

mkChans :: Proxy (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) -> IO (HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)))) Source #

(MkCh inToGen, MkCh genToOut) => MkChans (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source #

Methods

mkChans :: Proxy (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) -> IO (HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) = Record '[Tagged "in-ch" (HList (HChO inToGen)), Tagged "out-ch" (HList (HChI inToGen))]
type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) = Record '[Tagged "Source" (Record '[Tagged "in-ch" (HList (HChI inToGen)), Tagged "out-ch" (HList (HChO inToGen))]), Tagged "generator" (Record '[Tagged "in-ch" (HList (HChI genToOut)), Tagged "out-ch" (HList (HChO genToOut))]), Tagged "Sink" (Record '[Tagged "in-ch" (HList (HChI genToOut))])]

data a :>> b infixr 5 Source #

This is the Type level function of the Open Union Type for Stages.

This should have the form:

 Source (Channel ..) :>> Generator (Channel ..) :>> Sink

Constructors

a :>> b infixr 5 

Instances

Instances details
Functor ((:>>) a) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

fmap :: (a0 -> b) -> (a :>> a0) -> a :>> b #

(<$) :: a0 -> (a :>> b) -> a :>> a0 #

Foldable ((:>>) a) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

fold :: Monoid m => (a :>> m) -> m #

foldMap :: Monoid m => (a0 -> m) -> (a :>> a0) -> m #

foldMap' :: Monoid m => (a0 -> m) -> (a :>> a0) -> m #

foldr :: (a0 -> b -> b) -> b -> (a :>> a0) -> b #

foldr' :: (a0 -> b -> b) -> b -> (a :>> a0) -> b #

foldl :: (b -> a0 -> b) -> b -> (a :>> a0) -> b #

foldl' :: (b -> a0 -> b) -> b -> (a :>> a0) -> b #

foldr1 :: (a0 -> a0 -> a0) -> (a :>> a0) -> a0 #

foldl1 :: (a0 -> a0 -> a0) -> (a :>> a0) -> a0 #

toList :: (a :>> a0) -> [a0] #

null :: (a :>> a0) -> Bool #

length :: (a :>> a0) -> Int #

elem :: Eq a0 => a0 -> (a :>> a0) -> Bool #

maximum :: Ord a0 => (a :>> a0) -> a0 #

minimum :: Ord a0 => (a :>> a0) -> a0 #

sum :: Num a0 => (a :>> a0) -> a0 #

product :: Num a0 => (a :>> a0) -> a0 #

Traversable ((:>>) a) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

traverse :: Applicative f => (a0 -> f b) -> (a :>> a0) -> f (a :>> b) #

sequenceA :: Applicative f => (a :>> f a0) -> f (a :>> a0) #

mapM :: Monad m => (a0 -> m b) -> (a :>> a0) -> m (a :>> b) #

sequence :: Monad m => (a :>> m a0) -> m (a :>> a0) #

MkCh inToGen => MkChans (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

Methods

mkChans :: Proxy (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) -> IO (HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)))) Source #

(Bounded a, Bounded b) => Bounded (a :>> b) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

minBound :: a :>> b #

maxBound :: a :>> b #

(Eq a, Eq b) => Eq (a :>> b) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

(==) :: (a :>> b) -> (a :>> b) -> Bool #

(/=) :: (a :>> b) -> (a :>> b) -> Bool #

(Show a, Show b) => Show (a :>> b) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

showsPrec :: Int -> (a :>> b) -> ShowS #

show :: (a :>> b) -> String #

showList :: [a :>> b] -> ShowS #

(MkCh inToGen, MkCh genToOut) => MkChans (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source #

Methods

mkChans :: Proxy (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) -> IO (HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) = Record '[Tagged "in-ch" (HList (HChO inToGen)), Tagged "out-ch" (HList (HChI inToGen))]
type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) = Record '[Tagged "Source" (Record '[Tagged "in-ch" (HList (HChI inToGen)), Tagged "out-ch" (HList (HChO inToGen))]), Tagged "generator" (Record '[Tagged "in-ch" (HList (HChI genToOut)), Tagged "out-ch" (HList (HChO genToOut))]), Tagged "Sink" (Record '[Tagged "in-ch" (HList (HChI genToOut))])]

data chann1 :<+> chann2 infixr 5 Source #

This is the Type level function of the Open Union Type for Channels.

Channels forms an Open Union Type in each stage because according to DPP we can have multiple In and Out Channels in a Single Stage.

Eof should be the last Channel of the Open Union Type to indicate termination of the Grammar.

 chann1 ~ Type
 chann2 ~ Type

Constructors

chann1 :<+> chann2 infixr 5 

Instances

Instances details
Functor ((:<+>) chann1) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

fmap :: (a -> b) -> (chann1 :<+> a) -> chann1 :<+> b #

(<$) :: a -> (chann1 :<+> b) -> chann1 :<+> a #

Foldable ((:<+>) chann1) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

fold :: Monoid m => (chann1 :<+> m) -> m #

foldMap :: Monoid m => (a -> m) -> (chann1 :<+> a) -> m #

foldMap' :: Monoid m => (a -> m) -> (chann1 :<+> a) -> m #

foldr :: (a -> b -> b) -> b -> (chann1 :<+> a) -> b #

foldr' :: (a -> b -> b) -> b -> (chann1 :<+> a) -> b #

foldl :: (b -> a -> b) -> b -> (chann1 :<+> a) -> b #

foldl' :: (b -> a -> b) -> b -> (chann1 :<+> a) -> b #

foldr1 :: (a -> a -> a) -> (chann1 :<+> a) -> a #

foldl1 :: (a -> a -> a) -> (chann1 :<+> a) -> a #

toList :: (chann1 :<+> a) -> [a] #

null :: (chann1 :<+> a) -> Bool #

length :: (chann1 :<+> a) -> Int #

elem :: Eq a => a -> (chann1 :<+> a) -> Bool #

maximum :: Ord a => (chann1 :<+> a) -> a #

minimum :: Ord a => (chann1 :<+> a) -> a #

sum :: Num a => (chann1 :<+> a) -> a #

product :: Num a => (chann1 :<+> a) -> a #

Traversable ((:<+>) chann1) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

traverse :: Applicative f => (a -> f b) -> (chann1 :<+> a) -> f (chann1 :<+> b) #

sequenceA :: Applicative f => (chann1 :<+> f a) -> f (chann1 :<+> a) #

mapM :: Monad m => (a -> m b) -> (chann1 :<+> a) -> m (chann1 :<+> b) #

sequence :: Monad m => (chann1 :<+> m a) -> m (chann1 :<+> a) #

(Bounded chann1, Bounded chann2) => Bounded (chann1 :<+> chann2) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

minBound :: chann1 :<+> chann2 #

maxBound :: chann1 :<+> chann2 #

(Eq chann1, Eq chann2) => Eq (chann1 :<+> chann2) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

(==) :: (chann1 :<+> chann2) -> (chann1 :<+> chann2) -> Bool #

(/=) :: (chann1 :<+> chann2) -> (chann1 :<+> chann2) -> Bool #

(Show chann1, Show chann2) => Show (chann1 :<+> chann2) Source # 
Instance details

Defined in DynamicPipeline.Flow

Methods

showsPrec :: Int -> (chann1 :<+> chann2) -> ShowS #

show :: (chann1 :<+> chann2) -> String #

showList :: [chann1 :<+> chann2] -> ShowS #

MkCh more => MkCh (a :<+> more) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChI (a :<+> more) :: [Type] Source #

type HChO (a :<+> more) :: [Type] Source #

Methods

mkCh :: Proxy (a :<+> more) -> IO (HList (HChI (a :<+> more)), HList (HChO (a :<+> more))) Source #

type HChI (a :<+> more) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChI (a :<+> more) = WriteChannel a ': HChI more
type HChO (a :<+> more) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChO (a :<+> more) = ReadChannel a ': HChO more

data ChanIn (a :: Type) Source #

Warning: INTERNAL USE

data ChanOut (a :: Type) Source #

Warning: INTERNAL USE

data ChanOutIn (a :: Type) (b :: Type) Source #

Warning: INTERNAL USE

data ChansFilter (a :: Type) Source #

Warning: INTERNAL USE

Instances

Instances details
MkCh inToGen => MkChans (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

Methods

mkChans :: Proxy (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) -> IO (HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)))) Source #

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) = Record '[Tagged "in-ch" (HList (HChO inToGen)), Tagged "out-ch" (HList (HChI inToGen))]

data ChanWriteSource (a :: Type) Source #

Warning: INTERNAL USE

data ChanReadWriteGen (a :: Type) Source #

Warning: INTERNAL USE

data ChanReadOut (a :: Type) Source #

Warning: INTERNAL USE

class MkCh (a :: Type) where Source #

Warning: INTERNAL USE

Associated Types

type HChI a :: [Type] Source #

type HChO a :: [Type] Source #

Methods

mkCh :: Proxy a -> IO (HList (HChI a), HList (HChO a)) Source #

Instances

Instances details
MkCh Eof Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChI Eof :: [Type] Source #

type HChO Eof :: [Type] Source #

Methods

mkCh :: Proxy Eof -> IO (HList (HChI Eof), HList (HChO Eof)) Source #

MkCh more => MkCh (a :<+> more) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChI (a :<+> more) :: [Type] Source #

type HChO (a :<+> more) :: [Type] Source #

Methods

mkCh :: Proxy (a :<+> more) -> IO (HList (HChI (a :<+> more)), HList (HChO (a :<+> more))) Source #

class MkChans (a :: Type) where Source #

Warning: INTERNAL USE

Associated Types

type HChan a :: Type Source #

Methods

mkChans :: Proxy a -> IO (HChan a) Source #

Instances

Instances details
MkCh inToGen => MkChans (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

Methods

mkChans :: Proxy (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) -> IO (HChan (ChansFilter (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)))) Source #

(MkCh inToGen, MkCh genToOut) => MkChans (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source # 
Instance details

Defined in DynamicPipeline.Flow

Associated Types

type HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) Source #

Methods

mkChans :: Proxy (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink)) -> IO (HChan (Source (Channel inToGen) :>> (Generator (Channel genToOut) :>> Sink))) Source #

type ExpandGenToCh a filter = ExpandToHList (ChanReadWriteGen a) filter Source #

Warning: INTERNAL USE

type ExpandSinkToCh a = ExpandToHList (ChanReadOut a) Void Source #

Warning: INTERNAL USE

type ExpandSourceToCh a = ExpandToHList (ChanWriteSource a) Void Source #

Warning: INTERNAL USE

type ExpandFilterToCh a param = ExpandGenToCh a param Source #

Warning: INTERNAL USE

type AllChans r2 r3 l1 r4 l2 t2 s t1 s2 t5 l3 l4 = (LabeledOpticTo (LabelableTy r2) "in-ch" (->), LabeledOpticF (LabelableTy r3) (Const (HList l3)), LabeledOpticP (LabelableTy r3) (->), LabeledOpticTo (LabelableTy r3) "Source" (->), LabeledOpticF (LabelableTy r2) (Const (HList l1)), LabeledOpticP (LabelableTy r2) (->), LabeledOpticTo (LabelableTy r2) "out-ch" (->), LabeledOpticTo (LabelableTy r4) "in-ch" (->), LabeledOpticF (LabelableTy r3) (Const (HList l2)), LabeledOpticTo (LabelableTy r3) "generator" (->), LabeledOpticF (LabelableTy r3) (Const (HList l1)), LabeledOpticF (LabelableTy r2) (Const (HList l3)), LabeledOpticF (LabelableTy r4) (Const (HList l4)), LabeledOpticP (LabelableTy r4) (->), LabeledOpticTo (LabelableTy r4) "out-ch" (->), LabeledOpticF (LabelableTy r3) (Const (HList l4)), LabeledOpticF (LabelableTy r4) (Const (HList l2)), HAppendList l1 l2, Labelable "generator" r3 t2 t2 (r4 s) (r4 t1), Labelable "in-ch" r2 s2 t5 (HList l3) (HList l3), Labelable "in-ch" r4 s t1 (HList l2) (HList l2), Labelable "Source" r3 t2 t2 (r2 s2) (r2 t5), Labelable "out-ch" r2 s2 t5 (HList l1) (HList l1), Labelable "out-ch" r4 s t1 (HList l4) (HList l4)) Source #

Warning: INTERNAL USE

type FilterChans r b t a = (LabeledOpticF (LabelableTy r) (Const b), LabeledOpticTo (LabelableTy r) "out-ch" (->), Labelable "out-ch" r t t b b, LabeledOpticF (LabelableTy r) (Const a), LabeledOpticP (LabelableTy r) (->), LabeledOpticTo (LabelableTy r) "in-ch" (->), Labelable "in-ch" r t t a a) Source #

Warning: INTERNAL USE

inGenOut :: AllChans r2 r3 l1 r4 l2 t2 s t1 s2 t5 l3 l4 => r3 t2 -> (HList l3, HList (HAppendListR l1 l2), HList l4) Source #

Warning: INTERNAL USE

makeChans :: forall (a :: Type). MkChans a => IO (HChan a) Source #

Warning: INTERNAL USE

getFilterChannels :: FilterChans r b t a => r t -> (a, b) Source #

Warning: INTERNAL USE