Agda-2.6.4: A dependently typed functional programming language and proof assistant
Safe HaskellSafe-Inferred
LanguageHaskell2010

Agda.Utils.Memo

Synopsis
  • memo :: MonadState s m => Lens' s (Maybe a) -> m a -> m a
  • memoRec :: MonadState s m => Lens' s (Maybe a) -> a -> m a -> m a
  • memoUnsafe :: Ord a => (a -> b) -> a -> b
  • memoUnsafeH :: (Eq a, Hashable a) => (a -> b) -> a -> b

Documentation

memo :: MonadState s m => Lens' s (Maybe a) -> m a -> m a Source #

Simple, non-reentrant memoisation.

memoRec :: MonadState s m => Lens' s (Maybe a) -> a -> m a -> m a Source #

Recursive memoisation, second argument is the value you get on recursive calls.

memoUnsafe :: Ord a => (a -> b) -> a -> b Source #

memoUnsafeH :: (Eq a, Hashable a) => (a -> b) -> a -> b Source #