memo-map-0.0.0.0: Memoization in a Map
Safe HaskellSafe-Inferred
LanguageGHC2021

MemoMap

Synopsis

MemoMap type

data MemoMap m a b Source #

Create with newMemoMap, use with runMemoMap

Constructors

MemoMap 

Fields

newMemoMap :: forall a b m1 m2. MonadIO m1 => (a -> m2 b) -> m1 (MemoMap m2 a b) Source #

runMemoMap :: forall a b m. (MonadUnliftIO m, Ord a) => MemoMap m a b -> a -> m b Source #

getMemoMap :: MonadIO m => MemoMap m a b -> m (Map a b) Source #

Simplified usage

memoize :: forall a b m1 m2. (MonadIO m1, MonadUnliftIO m2, Ord a) => (a -> m2 b) -> m1 (a -> m2 b) Source #

Create a memoized variant of an effectful function (using MemoMap internally)