monadology-0.3: The best ideas in monad-related classes and types.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Ology.General.Coroutine

Synopsis

Documentation

class Monad m => MonadCoroutine m where Source #

Monads in which one can do coroutines.

Methods

coroutineSuspend :: ((p -> m q) -> m r) -> CoroutineT p q m r Source #

Instances

Instances details
MonadCoroutine IO Source #

Uses threads.

Instance details

Defined in Control.Monad.Ology.General.Coroutine

Methods

coroutineSuspend :: ((p -> IO q) -> IO r) -> CoroutineT p q IO r Source #

(MonadTransUnlift t, MonadCoroutine m, MonadTunnelIO m, Monad (t m)) => MonadCoroutine (t m) Source # 
Instance details

Defined in Control.Monad.Ology.General.Coroutine

Methods

coroutineSuspend :: ((p -> t m q) -> t m r) -> CoroutineT p q (t m) r Source #

type With (m :: k -> Type) (t :: Type) = forall (r :: k). (t -> m r) -> m r Source #

A type synoynm for a common pattern for closing opened resources, e.g. withFile, withBinaryFile, etc.

unpickWith :: forall m a. MonadCoroutine m => With m a -> m (a, m ()) Source #

pickWith :: forall m a. Monad m => m (a, m ()) -> With m a Source #