monad-memo-0.5.0: Memoization monad transformer

Copyright(c) Eduard Sergeev 2013
LicenseBSD-style (see the file LICENSE)
Maintainereduard.sergeev@gmail.com
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Trans.Memo.ReaderCache

Description

Generic StateCache - wrapper around ReaderT

Synopsis

Documentation

data ReaderCache c m a Source #

Instances
(PrimMonad m, PrimState m ~ s, MaybeLike e v, MVector c e) => MonadMemo Int v (Cache c s e m) Source # 
Instance details

Defined in Control.Monad.Memo.Vector.Unsafe

Methods

memo :: (Int -> Cache c s e m v) -> Int -> Cache c s e m v Source #

(PrimMonad m, PrimState m ~ s, MaybeLike e v, MVector c e) => MonadMemo Int v (Cache c s e m) Source # 
Instance details

Defined in Control.Monad.Memo.Vector

Methods

memo :: (Int -> Cache c s e m v) -> Int -> Cache c s e m v Source #

(Monad m, Ix k, MaybeLike e v, MArray c e m) => MonadMemo k v (Cache c k e m) Source # 
Instance details

Defined in Control.Monad.Memo.Array

Methods

memo :: (k -> Cache c k e m v) -> k -> Cache c k e m v Source #

(PrimMonad m, PrimState m ~ s, MaybeLike e v, MVector c e) => MonadCache Int v (Cache c s e m) Source # 
Instance details

Defined in Control.Monad.Memo.Vector.Unsafe

Methods

lookup :: Int -> Cache c s e m (Maybe v) Source #

add :: Int -> v -> Cache c s e m () Source #

(PrimMonad m, PrimState m ~ s, MaybeLike e v, MVector c e) => MonadCache Int v (Cache c s e m) Source # 
Instance details

Defined in Control.Monad.Memo.Vector

Methods

lookup :: Int -> Cache c s e m (Maybe v) Source #

add :: Int -> v -> Cache c s e m () Source #

(Monad m, Ix k, MaybeLike e v, MArray c e m) => MonadCache k v (Cache c k e m) Source # 
Instance details

Defined in Control.Monad.Memo.Array

Methods

lookup :: k -> Cache c k e m (Maybe v) Source #

add :: k -> v -> Cache c k e m () Source #

MonadTrans (ReaderCache c) Source # 
Instance details

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

lift :: Monad m => m a -> ReaderCache c m a #

Monad m => Monad (ReaderCache c m) Source # 
Instance details

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

(>>=) :: ReaderCache c m a -> (a -> ReaderCache c m b) -> ReaderCache c m b #

(>>) :: ReaderCache c m a -> ReaderCache c m b -> ReaderCache c m b #

return :: a -> ReaderCache c m a #

fail :: String -> ReaderCache c m a #

Functor m => Functor (ReaderCache c m) Source # 
Instance details

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

fmap :: (a -> b) -> ReaderCache c m a -> ReaderCache c m b #

(<$) :: a -> ReaderCache c m b -> ReaderCache c m a #

MonadFix m => MonadFix (ReaderCache c m) Source # 
Instance details

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

mfix :: (a -> ReaderCache c m a) -> ReaderCache c m a #

Applicative m => Applicative (ReaderCache c m) Source # 
Instance details

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

pure :: a -> ReaderCache c m a #

(<*>) :: ReaderCache c m (a -> b) -> ReaderCache c m a -> ReaderCache c m b #

liftA2 :: (a -> b -> c0) -> ReaderCache c m a -> ReaderCache c m b -> ReaderCache c m c0 #

(*>) :: ReaderCache c m a -> ReaderCache c m b -> ReaderCache c m b #

(<*) :: ReaderCache c m a -> ReaderCache c m b -> ReaderCache c m a #

MonadIO m => MonadIO (ReaderCache c m) Source # 
Instance details

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

liftIO :: IO a -> ReaderCache c m a #

Alternative m => Alternative (ReaderCache c m) Source # 
Instance details

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

empty :: ReaderCache c m a #

(<|>) :: ReaderCache c m a -> ReaderCache c m a -> ReaderCache c m a #

some :: ReaderCache c m a -> ReaderCache c m [a] #

many :: ReaderCache c m a -> ReaderCache c m [a] #

MonadPlus m => MonadPlus (ReaderCache c m) Source # 
Instance details

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

mzero :: ReaderCache c m a #

mplus :: ReaderCache c m a -> ReaderCache c m a -> ReaderCache c m a #

evalReaderCache :: ReaderCache r m a -> r -> m a Source #

container :: Monad m => ReaderCache c m c Source #

Returns internal container