úÎ3^1ˆ     (c) 2018 Henri VerrokenBSD3(Henri Verroken <henriverroken@gmail.com>stableNone+A container data type holding a cache item.The cache with keys of type k and values of type v.Create caches with the newCache and  copyCache functions.8The default expiration value of newly added cache items.See newCache6 for more information on the default expiration value.Get the current time in the  monad using .  (c) 2016 Henri VerrokenBSD3(Henri Verroken <henriverroken@gmail.com>stableNone0Ö ?Change the default expiration value of newly added cache items.See  6 for more information on the default expiration value. PCreate a new cache with a default expiration value for newly added cache items.OItems that are added to the cache without an explicit expiration value (using 5) will be inserted with the default expiration value.-If the specified default expiration value is , items inserted by  will never expire. STM variant of   Create a deep copy of the cache.STM variant of 6Return the size of the cache, including expired items.STM variant of .LDelete an item from the cache. Won't do anything if the item is not present.HLookup an item with the given key, but don't delete it if it is expired.dThe function will only return a value if it is present in the cache and if the item is not expired.5The function will not delete the item from the cache.BLookup an item with the given key, and delete it if it is expired.dThe function will only return a value if it is present in the cache and if the item is not expired.JThe function will eagerly delete the item from the cache if it is expired.'Lookup an item with a given key in the  monad, given the current  time.STM variant of  and HInsert an item in the cache, with an explicit expiration value, in the  monad.If the expiration value is T, the item will never expire. The default expiration value of the cache is ignored.%The expiration value is the absolute D time the item expires. You should manually construct the absolute ' time, as opposed to the behaviour of .E.g. “action :: Cache -> IO () action c = do t <- getTime Monotonic let t' = t + (defaultExpiration c) atomically $ insertSTM 0 0 c (Just t')?Insert an item in the cache, with an explicit expiration value.If the expiration value is T, the item will never expire. The default expiration value of the cache is ignored.0The expiration value is relative to the current = time, i.e. it will be automatically added to the result of getTime Monotonic.NInsert an item in the cache, using the default expiration value of the cache.STM variant of .%Return all keys present in the cache.STM variant of .The   argument should be the current  time, i.e. getTime Monotonic."Delete all items that are expired.!This is one big atomic operation.8Whether or not to eagerly delete the item if its expiredThe key to lookup The cache The current  time, i.e. getTime Monotonic   !      !"#$%#$&'$cache-0.1.1.0-9slBWu5H7R1Ceo5S7vFAHIData.Cache.Internal Data.Cache CacheItemitemitemExpirationCache containerdefaultExpirationnowSTMsetDefaultExpirationnewCache newCacheSTM copyCacheSTM copyCachesizeSTMsize deleteSTMdeletelookup'lookup lookupSTM insertSTMinsert'insertkeysSTMkeyspurgeExpiredSTM purgeExpiredbase GHC.Conc.SyncSTM unsafeIOToSTMGHC.BaseNothing"clock-0.7.2-9eH7xKbfVcK4kzFNhMiHdo System.Clock MonotonicTimeSpec