Data.Conduit.Internal.Fusion

conduit-1.3.6: Streaming data processing library.

Safe Haskell | Trustworthy
Language | Haskell2010

Data.Conduit.Internal.Fusion

Contents

- Types
- Functions

Synopsis

- data Step s o r
  - = Emit s o
  - | Skip s
  - | Stop r
- data Stream (m :: Type -> Type) o r = Stream (s -> m (Step s o r)) (m s)
- data ConduitWithStream i o (m :: Type -> Type) r
- type StreamConduitT i o (m :: Type -> Type) r = Stream m i () -> Stream m o r
- type StreamConduit i (m :: Type -> Type) o = StreamConduitT i o m ()
- type StreamSource (m :: Type -> Type) o = StreamConduitT () o m ()
- type StreamProducer (m :: Type -> Type) o = forall i. StreamConduitT i o m ()
- type StreamSink i (m :: Type -> Type) r = StreamConduitT i Void m r
- type StreamConsumer i (m :: Type -> Type) r = forall o. StreamConduitT i o m r
- streamConduit :: forall i o (m :: Type -> Type) r. ConduitT i o m r -> (Stream m i () -> Stream m o r) -> ConduitWithStream i o m r
- streamSource :: forall (m :: Type -> Type) o i. Monad m => Stream m o () -> ConduitWithStream i o m ()
- streamSourcePure :: forall (m :: Type -> Type) o i. Monad m => Stream Identity o () -> ConduitWithStream i o m ()
- unstream :: forall i o (m :: Type -> Type) r. ConduitWithStream i o m r -> ConduitT i o m r

## Types

data Step s o r #

This is the same as stream fusion's Step. Constructors are renamed to avoid confusion with conduit names.

Constructors

Emit s o |
Skip s |
Stop r |

#### Instances

Instances details

Functor (Step s o) # |
Instance details Defined in Data.Conduit.Internal.Fusion Methods fmap :: (a -> b) -> Step s o a -> Step s o b # (<$) :: a -> Step s o b -> Step s o a #

data Stream (m :: Type -> Type) o r #

Constructors

Stream (s -> m (Step s o r)) (m s) |

data ConduitWithStream i o (m :: Type -> Type) r #

type StreamConduitT i o (m :: Type -> Type) r = Stream m i () -> Stream m o r #

type StreamConduit i (m :: Type -> Type) o = StreamConduitT i o m () #

type StreamSource (m :: Type -> Type) o = StreamConduitT () o m () #

type StreamProducer (m :: Type -> Type) o = forall i. StreamConduitT i o m () #

type StreamSink i (m :: Type -> Type) r = StreamConduitT i Void m r #

type StreamConsumer i (m :: Type -> Type) r = forall o. StreamConduitT i o m r #

## Functions

streamConduit :: forall i o (m :: Type -> Type) r. ConduitT i o m r -> (Stream m i () -> Stream m o r) -> ConduitWithStream i o m r #

streamSource :: forall (m :: Type -> Type) o i. Monad m => Stream m o () -> ConduitWithStream i o m () #

streamSourcePure :: forall (m :: Type -> Type) o i. Monad m => Stream Identity o () -> ConduitWithStream i o m () #

unstream :: forall i o (m :: Type -> Type) r. ConduitWithStream i o m r -> ConduitT i o m r #