monad-memo-0.1.0: Memoization monad transformer

Control.Monad.Trans.Memo.Strict

Documentation

newtype MemoT k v m a Source

Constructors

MemoT 

Fields

toStateT :: StateT (Map k v) m a
 

Instances

(Monad m, Ord k) => MonadMemo k v (MemoT k v m) 
(Monad m, Ord k) => MonadCache k v (MemoT k v m) 
MonadTrans (MemoT k v) 
Monad m => Monad (MemoT k v m) 
Functor m => Functor (MemoT k v m) 
MonadFix m => MonadFix (MemoT k v m) 
MonadPlus m => MonadPlus (MemoT k v m) 
(Functor m, Monad m) => Applicative (MemoT k v m) 
(Functor m, MonadPlus m) => Alternative (MemoT k v m) 
MonadIO m => MonadIO (MemoT k v m) 

runMemoT :: MemoT k v m a -> Map k v -> m (a, Map k v)Source

startRunMemoT :: MemoT k v m a -> m (a, Map k v)Source

evalMemoT :: Monad m => MemoT k v m a -> Map k v -> m aSource

startEvalMemoT :: Monad m => MemoT k v m a -> m aSource

type Memo k v = MemoT k v IdentitySource

runMemo :: Memo k v a -> Map k v -> (a, Map k v)Source

startRunMemo :: Memo k v a -> (a, Map k v)Source

evalMemo :: Memo k v a -> Map k v -> aSource