Idris2Doc : Data.MSF.Trans

Data.MSF.Trans

(source)
Monad morphisms and interaction with monad transformer stacks.

Definitions

morphGS : Monad m1 => ((i1 -> m1 (o1, c)) -> i2 -> m2 (o2, c)) -> MSF m1 i1 o1 -> MSF m2 i2 o2
  The most general structure-preserving monad morphism.
This can be used to change the input and output type plus
the effect type of an MSF without affecting its internal
structure (wiring of stream functions).

For examples of usage, have a look at the implementations of
functions like `unreader`, `reader`, `unstate`, and similar.

Visibility: export
morph : Monad m1 => (m1 c -> m2 c) -> MSF m1 i1 o1 -> MSF m2 i1 o1
  Applies a monad morphism to change the context of an MSF.

```idris example
fromPure : Monad m => MSF Identity i o -> MSF m i o
fromPure = morph (pure . runIdentity)
```

Visibility: export
fromPure : Monad m => MSF Identity i o -> MSF m i o
  Puts a pure MSF (over the `Identity` monad) in another
monadic context.

Visibility: export
get : MonadState s m => MSF m i s
  Alias for `constM get`

Visibility: export
put : MonadState s m => MSF m s ()
  Alias for `constM put`

Visibility: export
modify : MonadState s m => MSF m (s -> s) ()
  Alias for `constM modify`

Visibility: export
fromState : Monad m => MSF (StateT s m) i o -> MSF m (HList [s, i]) (HList [s, o])
  Converts an outer `StateT` wrapper to an MSF converting
an additional argument of the state type.

Visibility: export
loopState : Monad m => s -> MSF (StateT s m) i o -> MSF m i o
  Runs the given stateful MSF as a feedback loop with `ini` as the
initial input.

This is a shorthand for `feedback ini . fromState`.

Visibility: export
fromState_ : Monad m => MSF (StateT s m) () () -> MSF m s s
  Like `fromState` but drops the uninteresting unit in- and output.

Visibility: export
toState : Monad m => MSF m (HList [s, i]) (HList [s, o]) -> MSF (StateT s m) i o
  Converts a state transforming MSF to one with its monadic context
wrapped in `StateT s`.

Visibility: export
toState_ : Monad m => MSF m s s -> MSF (StateT s m) () ()
  Like `toState` but for MSFs without additional in- or output

Visibility: export
ask : MonadReader e m => MSF m i e
  Alias for `constM ask`

Visibility: export
fromReader : Monad m => MSF (ReaderT e m) i o -> MSF m (HList [e, i]) o
  Converts an outer `ReaderT` wrapper to an MSF taking an
an additional input.

Visibility: export
withEnv : Monad m => e -> MSF (ReaderT e m) i o -> MSF m i o
  Converts the given MSF to use `env` as its environment.

This is an alias for `fan [ const env, id ] >>> fromReader sf`.

Visibility: export
fromReader_ : Monad m => MSF (ReaderT e m) () o -> MSF m e o
  Like `unReader` but drops the uninteresting unit input.

Visibility: export
toReader : Monad m => MSF m (HList [e, i]) o -> MSF (ReaderT e m) i o
  Converts an MSF taking an additional input
to one with its monadic context wrapped in `ReaderT e`.

Visibility: export
toReader_ : Monad m => MSF m e o -> MSF (ReaderT e m) () o
  Like `toReader` but for MSFs without additional input

Visibility: export
tell : MonadWriter w m => MSF m w ()
  Alias for `arrM tell`

Visibility: export
fromWriter : Monoid w => Monad m => MSF (WriterT w m) i o -> MSF m i (HList [w, o])
  Converts an outer `WriterT` wrapper to an MSF producing
an additional output.

Visibility: export
fromWriter_ : Monoid w => Monad m => MSF (WriterT w m) i () -> MSF m i w
  Like `fromWriter` but ignores the uninteresting output.

Visibility: export
toWriter : Monoid w => Monad m => MSF m i (HList [w, o]) -> MSF (WriterT w m) i o
  Converts an MSF producing an additional output
to one with its monadic context wrapped in `WriterT w`.

Visibility: export
toWriter_ : Monoid w => Monad m => MSF m i w -> MSF (WriterT w m) i ()
  Like `toWriter` but produces unit as output.

Visibility: export