explicit-sharing-0.2: Explicit Sharing of Monadic Effects

Control.Monad.Sharing.Lazy.ContReaderNoThunks

Documentation

data Store Source

Constructors

Store Int (IntMap Untyped) 

Instances

type Env = (Store, Shared)Source

newtype Lazy m a Source

Constructors

Lazy 

Fields

fromLazy :: ContT (ReaderT Env m) a
 

Instances

Monad m => MonadState Store (Lazy m) 
Monad m => MonadWriter Shared (Lazy m) 
Monad m => Monad (Lazy m) 
MonadPlus m => MonadPlus (Lazy m) 
MonadPlus m => Sharing (Lazy m) 

runLazy :: Monad m => Lazy m a -> m aSource

memo :: (MonadState Store m, MonadWriter Shared m) => m a -> m (m a)Source