lensref-0.1.0.5: References which can be joined and on which lenses can be applied

Safe HaskellNone
LanguageHaskell98

Data.LensRef.Common

Documentation

type RefWriterT w m = ReaderT (Ref m w) m Source

runRefWriterT :: (MonadRefCreator m, Monoid w) => RefWriterT w m a -> m (a, Ref m w) Source

newtype MonadMonoid a Source

Constructors

MonadMonoid 

Fields

runMonadMonoid :: a ()
 

Instances

newtype Morph m n Source

Constructors

Morph 

Fields

runMorph :: forall a. m a -> n a
 

type SRef m a = Morph (StateT a m) m Source

class Monad m => NewRef m where Source

Methods

newRef' :: a -> m (SRef m a) Source

Instances

NewRef IO 
NewRef (Prog t) 
NewRef m => NewRef (ReaderT r m) 
NewRef m => NewRef (StateT s m) 
(Monoid w, NewRef m) => NewRef (WriterT w m) 

memoRead_ :: (MonadRefWriter m, MonadRefCreator m) => m a -> m (m a) Source