monad-memo (hackage): Memoization monad transformer supporting most of the standard monad transformers and a range of memoization cache types: from default pure maps to extremely fast mutable vectors  To add memoization behaviour to a monadic function:  1) Add Control.Monad.Memo.memo combinator at the point when memoization is required (i.e. recursive call)  2) Use appropriate *eval* or *run* function to evaluate resulting MonadMemo monad:  See detailed description and examples: Control.Monad.Memo
Keywords: bsd3|control|library|monad|haskell|memoization|monad-memo|monad-transformers