monad-memo-0.4.1: Memoization monad transformer

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

Control.Monad.Trans.Memo.ReaderCache

Description

Generic StateCache - similar to ReaderT but optimised for carrying cache container

Synopsis

Documentation

newtype ReaderCache c m a #

Generic memoization cache which uses provided container This is pretty much identical to ReaderT, but is tuned to speed up implementations which use unboxed mutable containers

Constructors

ReaderCache 

Fields

Instances
(PrimMonad m, PrimState m ~ s, MaybeLike e v, MVector c e) => MonadMemo Int v (Cache c s e m) # 
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 #

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

Defined in Control.Monad.Memo.Vector

Methods

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

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

Defined in Control.Monad.Memo.Array

Methods

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

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

Defined in Control.Monad.Memo.Vector.Unsafe

Methods

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

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

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

Defined in Control.Monad.Memo.Vector

Methods

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

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

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

Defined in Control.Monad.Memo.Array

Methods

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

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

MonadTrans (ReaderCache c) # 
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) # 
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) # 
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) # 
Instance details

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

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

Applicative m => Applicative (ReaderCache arr m) # 
Instance details

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

pure :: a -> ReaderCache arr m a #

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

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

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

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

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

Defined in Control.Monad.Trans.Memo.ReaderCache

Methods

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

Alternative m => Alternative (ReaderCache c m) # 
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) # 
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 #

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

Returns internal container