Portability | Rank-2 Types, GADTs |
---|---|

Stability | provisional |

Maintainer | Edward Kmett <ekmett@gmail.com> |

Safe Haskell | Safe-Inferred |

- type Tee a b c = Machine (T a b) c
- type TeeT m a b c = MachineT m (T a b) c
- data T a b c where
- tee :: Monad m => ProcessT m a a' -> ProcessT m b b' -> TeeT m a' b' c -> TeeT m a b c
- addL :: Monad m => ProcessT m a b -> TeeT m b c d -> TeeT m a c d
- addR :: Monad m => ProcessT m b c -> TeeT m a c d -> TeeT m a b d
- capL :: Monad m => SourceT m a -> TeeT m a b c -> ProcessT m b c
- capR :: Monad m => SourceT m b -> TeeT m a b c -> ProcessT m a c

# Tees

type Tee a b c = Machine (T a b) cSource

A `Machine`

that can read from two input stream in a deterministic manner.

type TeeT m a b c = MachineT m (T a b) cSource

A `Machine`

that can read from two input stream in a deterministic manner with monadic side-effects.

tee :: Monad m => ProcessT m a a' -> ProcessT m b b' -> TeeT m a' b' c -> TeeT m a b cSource

Compose a pair of pipes onto the front of a Tee.

addL :: Monad m => ProcessT m a b -> TeeT m b c d -> TeeT m a c dSource

Precompose a pipe onto the left input of a tee.

addR :: Monad m => ProcessT m b c -> TeeT m a c d -> TeeT m a b dSource

Precompose a pipe onto the right input of a tee.