Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Phase
- type StepType a b c = a (Phase, b) (Phase, c, ProcessA a b c)
- data ProcessA a b c = ProcessA {}
- fit :: (Arrow a, Arrow a') => (forall p q. a p q -> a' p q) -> ProcessA a b c -> ProcessA a' b c
- dimapStep :: Arrow a => (b -> c) -> (d -> e) -> StepType a c d -> StepType a b e
- parStep :: (Arrow a, Arrow t, Monoid t4) => t (t2, t1) (t4, t5, a b c) -> t (t2, t3) (t4, t6, a b' c') -> t (t2, (t1, t3)) (t4, (t5, t6), a (b, b') (c, c'))
- arrStep :: ArrowApply a => (b -> c) -> StepType a b c
- compositeStep :: ArrowApply a => StepType a b d -> StepType a d c -> StepType a b c
- compositeStep' :: ArrowApply a => Phase -> StepType a b d -> StepType a d c -> StepType a b c
Documentation
The stream transducer arrow.
To construct ProcessA
instances, use Plan
,
arr
, functions declared in Utils
,
or arrow combinations of them.
May use ArrowChoice
and ArrowLoop
instance too.
but there is a limitation that loop
cannot propagate Event
s to upstream.
In such case, use feedback
instead.
(ArrowApply a, ArrowReader r a) => ArrowReader r (ProcessA a) | |
ArrowApply a => Category * (ProcessA a) | |
(ArrowApply a, ArrowApply a', ArrowAddReader r a a') => ArrowAddReader r (ProcessA a) (ProcessA a') | |
ArrowApply a => ArrowChoice (ProcessA a) | |
ArrowApply a => Arrow (ProcessA a) | |
(ArrowApply a, ArrowLoop a) => ArrowLoop (ProcessA a) | |
Arrow a => Profunctor (ProcessA a) |
fit :: (Arrow a, Arrow a') => (forall p q. a p q -> a' p q) -> ProcessA a b c -> ProcessA a' b c Source
parStep :: (Arrow a, Arrow t, Monoid t4) => t (t2, t1) (t4, t5, a b c) -> t (t2, t3) (t4, t6, a b' c') -> t (t2, (t1, t3)) (t4, (t5, t6), a (b, b') (c, c')) Source
arrStep :: ArrowApply a => (b -> c) -> StepType a b c Source
compositeStep :: ArrowApply a => StepType a b d -> StepType a d c -> StepType a b c Source
Composition is proceeded by the backtracking strategy.
compositeStep' :: ArrowApply a => Phase -> StepType a b d -> StepType a d c -> StepType a b c Source