| Copyright | (c) Eduard Sergeev 2013 |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | eduard.sergeev@gmail.com |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | Safe |
| Language | Haskell98 |
Control.Monad.Trans.Memo.ReaderCache
Description
Generic StateCache - similar to ReaderT but optimised for carrying cache container
- newtype ReaderCache c m a = ReaderCache {
- evalReaderCache :: c -> m a
- container :: Monad m => ReaderCache c m c
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) # | |
| (PrimMonad m, (~) * (PrimState m) s, MaybeLike e v, MVector c e) => MonadMemo Int v (Cache c s e m) # | |
| (Monad m, Ix k, MaybeLike e v, MArray c e m) => MonadMemo k v (Cache c k e m) # | |
| (PrimMonad m, (~) * (PrimState m) s, MaybeLike e v, MVector c e) => MonadCache 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) # | |
| (Monad m, Ix k, MaybeLike e v, MArray c e m) => MonadCache k v (Cache c k e m) # | |
| MonadTrans (ReaderCache c) # | |
| Monad m => Monad (ReaderCache c m) # | |
| Functor m => Functor (ReaderCache c m) # | |
| MonadFix m => MonadFix (ReaderCache c m) # | |
| Applicative m => Applicative (ReaderCache arr m) # | |
| MonadIO m => MonadIO (ReaderCache c m) # | |
| Alternative m => Alternative (ReaderCache c m) # | |
| MonadPlus m => MonadPlus (ReaderCache c m) # | |
container :: Monad m => ReaderCache c m c #
Returns internal container