-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Please see the README on Github at -- https://github.com/ChrisCoffey/exp-cache#readme @package exp-cache @version 0.1.0.0 module Data.Cache.Eviction.LFU data LFU k newLFU :: LFU k newtype LFUContentsOnlyEq k LFUContentsOnlyEq :: (LFU k) -> LFUContentsOnlyEq k instance GHC.Show.Show k => GHC.Show.Show (Data.Cache.Eviction.LFU.LFUContentsOnlyEq k) instance GHC.Show.Show k => GHC.Show.Show (Data.Cache.Eviction.LFU.LFU k) instance (GHC.Classes.Ord k, Data.Hashable.Class.Hashable k) => GHC.Classes.Eq (Data.Cache.Eviction.LFU.LFU k) instance (Data.Hashable.Class.Hashable k, GHC.Classes.Ord k) => GHC.Classes.Eq (Data.Cache.Eviction.LFU.LFUContentsOnlyEq k) instance Data.Cache.Eviction.EvictionStrategy Data.Cache.Eviction.LFU.LFU module Data.Cache.Eviction.LRU -- | This is a naive and terribly slow version of an LRU cache data SeqLRU k newSeqLRU :: SeqLRU k -- | An optimized version of an LRU cache data LRU k newLRU :: LRU k newtype LRUContentsOnlyEq k LRUContentsOnlyEq :: (LRU k) -> LRUContentsOnlyEq k instance GHC.Show.Show k => GHC.Show.Show (Data.Cache.Eviction.LRU.LRUContentsOnlyEq k) instance GHC.Show.Show k => GHC.Show.Show (Data.Cache.Eviction.LRU.LRU k) instance (GHC.Classes.Ord k, Data.Hashable.Class.Hashable k) => GHC.Classes.Eq (Data.Cache.Eviction.LRU.LRU k) instance GHC.Show.Show k => GHC.Show.Show (Data.Cache.Eviction.LRU.SeqLRU k) instance GHC.Classes.Eq k => GHC.Classes.Eq (Data.Cache.Eviction.LRU.SeqLRU k) instance (Data.Hashable.Class.Hashable k, GHC.Classes.Ord k) => GHC.Classes.Eq (Data.Cache.Eviction.LRU.LRUContentsOnlyEq k) instance Data.Cache.Eviction.EvictionStrategy Data.Cache.Eviction.LRU.LRU instance Data.Cache.Eviction.EvictionStrategy Data.Cache.Eviction.LRU.SeqLRU module Data.Cache.Eviction.MRU data MRU k newMRU :: MRU k newtype MRUContentsOnlyEq k MRUContentsOnlyEq :: (MRU k) -> MRUContentsOnlyEq k instance GHC.Show.Show k => GHC.Show.Show (Data.Cache.Eviction.MRU.MRUContentsOnlyEq k) instance GHC.Show.Show k => GHC.Show.Show (Data.Cache.Eviction.MRU.MRU k) instance (GHC.Classes.Ord k, Data.Hashable.Class.Hashable k) => GHC.Classes.Eq (Data.Cache.Eviction.MRU.MRU k) instance (Data.Hashable.Class.Hashable k, GHC.Classes.Ord k) => GHC.Classes.Eq (Data.Cache.Eviction.MRU.MRUContentsOnlyEq k) instance Data.Cache.Eviction.EvictionStrategy Data.Cache.Eviction.MRU.MRU module Data.Cache.Eviction.RR -- | Random Replacement cache. The seed is fixed to an StdGen since -- its both easily accessible & good enough for this purpose. data RR k newRR :: StdGen -> Int -> RR k rrSizeDebug :: RR k -> Int instance GHC.Show.Show k => GHC.Show.Show (Data.Cache.Eviction.RR.RR k) instance GHC.Show.Show k => GHC.Show.Show (Data.Cache.Eviction.RR.StupidBiMap k) instance GHC.Classes.Eq k => GHC.Classes.Eq (Data.Cache.Eviction.RR.StupidBiMap k) instance GHC.Classes.Eq k => GHC.Classes.Eq (Data.Cache.Eviction.RR.RR k) instance Data.Cache.Eviction.EvictionStrategy Data.Cache.Eviction.RR.RR module Data.Cache data Cache k v s newCache :: (Hashable k, NFData v, EvictionStrategy s, Eq k, Ord k) => Int -> s k -> Cache k v (s k) class EvictionStrategy s recordLookup :: (EvictionStrategy s, Eq k, Hashable k, Ord k) => k -> s k -> s k evict :: (EvictionStrategy s, Eq k, Hashable k, Ord k) => s k -> (s k, Maybe k) -- | This is a naive and terribly slow version of an LRU cache data SeqLRU k newSeqLRU :: SeqLRU k -- | An optimized version of an LRU cache data LRU k newLRU :: LRU k data MRU k newMRU :: MRU k -- | Random Replacement cache. The seed is fixed to an StdGen since -- its both easily accessible & good enough for this purpose. data RR k newRR :: StdGen -> Int -> RR k data LFU k newLFU :: LFU k