Module

Run.Streaming.Push

Package
purescript-run-streaming
Repository
natefaubion/purescript-run-streaming

This modules defines primitive fusion operations for push streams.

#identity Source

identity :: forall a o i r. o -> Run (Pipe i o i o r) a

#chain Source

chain :: forall a o i r. (o -> Run (Client i o r) a) -> Run (Server i o r) a -> Run r a

Connects a Client to a Server which can react to responses from the Server.

#traverse Source

traverse :: forall a o i r. (o -> Run r i) -> Run (Server i o r) a -> Run r a

Loops over a Server/Producer with effects, feeding the result in as a request.

#for Source

for :: forall a o i r. Run (Server i o r) a -> (o -> Run r i) -> Run r a

traverse with the arguments flipped.

#compose Source

compose :: forall a x o i r. (o -> Run (Client i o r) a) -> (x -> Run (Server i o r) a) -> (x -> Run r a)

Point-free push composition.

#composeFlipped Source

composeFlipped :: forall a x o i r. (x -> Run (Server i o r) a) -> (o -> Run (Client i o r) a) -> (x -> Run r a)

compose with the arguments flipped.

#produce Source

produce :: forall a x r. Run (Producer x r) x -> Run (Producer x r) a

Produce values via an effect.