-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Utilities for memoizing functions
--
-- Utilities for memoizing functions
@package memoization-utils
@version 0.1.0.0
module Control.Memoization.Utils
-- | Caches function return values so that when the same arguments are
-- provided to a function, it's not called
memoize :: Ord a => (a -> IO b) -> IO (a -> IO b)
-- | Version of memoize that uses an LRU cache rather than always
-- keeping results in memory
memoizeLru :: Ord a => (Maybe Integer) -> (a -> IO b) -> IO (a -> IO b)
-- | Version of memoize keeps results for a certain amount of time
memoizeTime :: Ord a => Millisecond -> (a -> IO b) -> IO (a -> IO b)
-- | Caches an IO actions result
constMemoize :: IO b -> IO (IO b)
-- | Caches an IO actions result for some amount of time
constMemoizeTime :: Millisecond -> IO b -> IO (IO b)