| Copyright | (c) Eduard Sergeev 2013 |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | eduard.sergeev@gmail.com |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Control.Monad.Trans.Memo.ReaderCache
Description
Generic StateCache - wrapper around ReaderT
Synopsis
- data ReaderCache c m a
- evalReaderCache :: ReaderCache r m a -> r -> m a
- container :: Monad m => ReaderCache c m c
Documentation
data ReaderCache c m a Source #
Instances
| MArray IOArray e (ReaderCache c IO) Source # | |
Defined in Control.Monad.Trans.Memo.ReaderCache Methods getBounds :: Ix i => IOArray i e -> ReaderCache c IO (i, i) getNumElements :: Ix i => IOArray i e -> ReaderCache c IO Int newArray :: Ix i => (i, i) -> e -> ReaderCache c IO (IOArray i e) newArray_ :: Ix i => (i, i) -> ReaderCache c IO (IOArray i e) unsafeNewArray_ :: Ix i => (i, i) -> ReaderCache c IO (IOArray i e) unsafeRead :: Ix i => IOArray i e -> Int -> ReaderCache c IO e unsafeWrite :: Ix i => IOArray i e -> Int -> e -> ReaderCache c IO () | |
| MArray IOUArray e IO => MArray IOUArray e (ReaderCache c IO) Source # | |
Defined in Control.Monad.Trans.Memo.ReaderCache Methods getBounds :: Ix i => IOUArray i e -> ReaderCache c IO (i, i) getNumElements :: Ix i => IOUArray i e -> ReaderCache c IO Int newArray :: Ix i => (i, i) -> e -> ReaderCache c IO (IOUArray i e) newArray_ :: Ix i => (i, i) -> ReaderCache c IO (IOUArray i e) unsafeNewArray_ :: Ix i => (i, i) -> ReaderCache c IO (IOUArray i e) unsafeRead :: Ix i => IOUArray i e -> Int -> ReaderCache c IO e unsafeWrite :: Ix i => IOUArray i e -> Int -> e -> ReaderCache c IO () | |
| (PrimMonad m, PrimState m ~ s, MaybeLike e v, MVector c e) => MonadMemo Int v (Cache c s e m) Source # | |
| (PrimMonad m, PrimState m ~ s, MaybeLike e v, MVector c e) => MonadMemo Int v (Cache c s e m) Source # | |
| (Monad m, Ix k, MaybeLike e v, MArray c e m) => MonadMemo k v (Cache c k e m) Source # | |
| (PrimMonad m, PrimState m ~ s, MaybeLike e v, MVector c e) => MonadCache 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 # | |
| (Monad m, Ix k, MaybeLike e v, MArray c e m) => MonadCache k v (Cache c k e m) Source # | |
| MonadTrans (ReaderCache c) Source # | |
Defined in Control.Monad.Trans.Memo.ReaderCache Methods lift :: Monad m => m a -> ReaderCache c m a | |
| MArray (STUArray s) e (ST s) => MArray (STUArray s) e (ReaderCache c (ST s)) Source # | |
Defined in Control.Monad.Trans.Memo.ReaderCache Methods getBounds :: Ix i => STUArray s i e -> ReaderCache c (ST s) (i, i) getNumElements :: Ix i => STUArray s i e -> ReaderCache c (ST s) Int newArray :: Ix i => (i, i) -> e -> ReaderCache c (ST s) (STUArray s i e) newArray_ :: Ix i => (i, i) -> ReaderCache c (ST s) (STUArray s i e) unsafeNewArray_ :: Ix i => (i, i) -> ReaderCache c (ST s) (STUArray s i e) unsafeRead :: Ix i => STUArray s i e -> Int -> ReaderCache c (ST s) e unsafeWrite :: Ix i => STUArray s i e -> Int -> e -> ReaderCache c (ST s) () | |
| MArray (STArray s) e (ReaderCache c (ST s)) Source # | |
Defined in Control.Monad.Trans.Memo.ReaderCache Methods getBounds :: Ix i => STArray s i e -> ReaderCache c (ST s) (i, i) getNumElements :: Ix i => STArray s i e -> ReaderCache c (ST s) Int newArray :: Ix i => (i, i) -> e -> ReaderCache c (ST s) (STArray s i e) newArray_ :: Ix i => (i, i) -> ReaderCache c (ST s) (STArray s i e) unsafeNewArray_ :: Ix i => (i, i) -> ReaderCache c (ST s) (STArray s i e) unsafeRead :: Ix i => STArray s i e -> Int -> ReaderCache c (ST s) e unsafeWrite :: Ix i => STArray s i e -> Int -> e -> ReaderCache c (ST s) () | |
| Monad m => Monad (ReaderCache c m) Source # | |
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 | |
| Functor m => Functor (ReaderCache c m) Source # | |
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 # | |
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 # | |
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 | |
| PrimMonad m => PrimMonad (ReaderCache c m) Source # | |
Defined in Control.Monad.Trans.Memo.ReaderCache Associated Types type PrimState (ReaderCache c m) Source # Methods primitive :: (State# (PrimState (ReaderCache c m)) -> (# State# (PrimState (ReaderCache c m)), a #)) -> ReaderCache c m a Source # | |
| Alternative m => Alternative (ReaderCache c m) Source # | |
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 # | |
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 | |
| MonadIO m => MonadIO (ReaderCache c m) Source # | |
Defined in Control.Monad.Trans.Memo.ReaderCache Methods liftIO :: IO a -> ReaderCache c m a | |
| type PrimState (ReaderCache c m) Source # | |
Defined in Control.Monad.Trans.Memo.ReaderCache | |
| type UArray (ReaderCache c IO) Source # | |
Defined in Control.Monad.Memo.Array | |
| type UArray (ReaderCache c (ST s)) Source # | |
Defined in Control.Monad.Memo.Array | |
| type Array (ReaderCache c IO) Source # | |
Defined in Control.Monad.Memo.Array | |
| type Array (ReaderCache c (ST s)) Source # | |
Defined in Control.Monad.Memo.Array | |
evalReaderCache :: ReaderCache r m a -> r -> m a Source #
container :: Monad m => ReaderCache c m c Source #
Returns internal container