| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Polysemy.Output
Contents
Synopsis
- data Output o m a where
- output :: forall o r. MemberWithError (Output o) r => o -> Sem r ()
- runOutputList :: forall o r a. Sem (Output o ': r) a -> Sem r ([o], a)
- runOutputMonoid :: forall o m r a. Monoid m => (o -> m) -> Sem (Output o ': r) a -> Sem r (m, a)
- runOutputMonoidAssocR :: forall o m r a. Monoid m => (o -> m) -> Sem (Output o ': r) a -> Sem r (m, a)
- runOutputMonoidIORef :: forall o m r a. (Monoid m, Member (Embed IO) r) => IORef m -> (o -> m) -> Sem (Output o ': r) a -> Sem r a
- runOutputMonoidTVar :: forall o m r a. (Monoid m, Member (Embed IO) r) => TVar m -> (o -> m) -> Sem (Output o ': r) a -> Sem r a
- ignoreOutput :: Sem (Output o ': r) a -> Sem r a
- runOutputBatched :: forall o r a. Member (Output [o]) r => Int -> Sem (Output o ': r) a -> Sem r a
- runOutputSem :: (o -> Sem r ()) -> Sem (Output o ': r) a -> Sem r a
Effect
data Output o m a where Source #
An effect capable of sending messages. Useful for streaming output and for logging.
Instances
| type DefiningModule (Output :: Type -> k -> Type -> Type) Source # | |
Defined in Polysemy.Output | |
Actions
Interpretations
runOutputList :: forall o r a. Sem (Output o ': r) a -> Sem r ([o], a) Source #
Run an Output effect by transforming it into a list of its values.
Since: 1.0.0.0
runOutputMonoid :: forall o m r a. Monoid m => (o -> m) -> Sem (Output o ': r) a -> Sem r (m, a) Source #
Run an Output effect by transforming it into a monoid.
Since: 1.0.0.0
runOutputMonoidAssocR :: forall o m r a. Monoid m => (o -> m) -> Sem (Output o ': r) a -> Sem r (m, a) Source #
Like runOutputMonoid, but right-associates uses of <>.
This asymptotically improves performance if the time complexity of <> for
the Monoid depends only on the size of the first argument.
You should always use this instead of runOutputMonoid if the monoid
is a list, such as String.
runOutputMonoidIORef :: forall o m r a. (Monoid m, Member (Embed IO) r) => IORef m -> (o -> m) -> Sem (Output o ': r) a -> Sem r a Source #
runOutputMonoidTVar :: forall o m r a. (Monoid m, Member (Embed IO) r) => TVar m -> (o -> m) -> Sem (Output o ': r) a -> Sem r a Source #
ignoreOutput :: Sem (Output o ': r) a -> Sem r a Source #
Run an Output effect by ignoring it.
Since: 1.0.0.0