-- 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