úÎFóDÖ$      !"#=The values stored in the Map of the LRU cache. They embed a . doubly-linked list through the values of the $. The actual value %the key of the value before this one $the key of the value after this one 2Stores the information that makes up an LRU cache ,the key of the most recently accessed entry -the key of the least recently accessed entry "the maximum size of the LRU cache  the backing $ BMake an LRU. If a size limit is specified, the LRU is guaranteed 4 to not grow above the specified number of entries. %the optional maximum size of the LRU BBuild a new LRU from the given maximum size and list of contents, B in order from most recently accessed to least recently accessed. %the optional maximum size of the LRU ;Retrieve a list view of an LRU. The items are returned in ? order from most recently accessed to least recently accessed. >Add an item to an LRU. If the key was already present in the < LRU, the value is changed to the new value passed in. The @ item added is marked as the most recently accessed item in the  LRU returned. <If this would cause the LRU to exceed its maximum size, the 5 least recently used item is dropped from the cache. ?Look up an item in an LRU. If it was present, it is marked as 0 the most recently accesed in the returned LRU. BRemove an item from an LRU. Returns the new LRU, and if the item  was present to be removed. :Removes the least-recently accessed element from the LRU. D Returns the new LRU, and the key and value from the least-recently ! used element, if there was one. ;Returns the number of elements the LRU currently contains. =Internal function. The key passed in must be present in the ; LRU. Moves the item associated with that key to the most  recently accessed position. An internal function used by  (when the cache is full)  and 0. This function has strict requirements on its & arguments in order to work properly. CAs this is intended to be an internal function, the arguments were E chosen to avoid repeated computation, rather than for simplicity of  calling this function. (The key must be present in the provided   This is the  to modify  this is the $ from the  previous argument, but with  the key already removed from  it. This isn' t consistent  yet, as it still might  contain LinkedVals with  pointers to the removed key.  This is the  that & corresponds to the key in the passed & in LRU. It is absent from the passed  in map. ,Internal function. This is very similar to %, with " two major differences. First, it's strict in the application of E the function, which is a huge win when working with this structure. BSecond, it requires that the key be present in order to work. If  the key isn' t present, & will be inserted into the $, " which will cause problems later. ?Internal function. This checks the four structural invariants  of the LRU cache structure:  The cache'/s size does not exceed the specified max size. E The linked list through the nodes is consistent in both directions. A The linked list contains the same number of nodes as the cache. ( Every key in the linked list is in the $.           The opaque wrapper type <Make a new AtomicLRU that will not grow beyond the optional  maximum size, if specified. the optional maximum size ;Build a new LRU from the optional maximum size and list of  contents. See   for the semantics. the optional maximum size +Retrieve a list view of an AtomicLRU. See   for the  semantics.  Insert a key/#value pair into an AtomicLRU. See  for  the semantics. #Look up a key in an AtomicLRU. See  for the  semantics. =Remove an item from an AtomicLRU. Returns the value for the  removed key, if it was present ;Remove the least-recently accessed item from an AtomicLRU. : Returns the (key, val) pair removed, if one was present. !AReturns the number of elements the AtomicLRU currently contains. " A version of ' that forces the result of the  function application to WHNF. # A version of ( that forces the result of the  function application to WHNF.  !"#  !"#  !"#  !  !)        !" !#$%&$'($')* lrucache-1.0Data.Cache.LRU.InternalData.Cache.LRUData.Cache.LRU.IOData.Cache.LRU.IO.Internal LinkedValLinkvalueprevnextLRUfirstlastmaxSizecontentnewLRUfromListtoListinsertlookupdeletepopsizehit'delete'adjust'valid AtomicLRUC newAtomicLRU modifyMVar_' modifyMVar'containers-0.3.0.0Data.MapMapadjustbaseGHC.Err undefinedControl.Concurrent.MVar modifyMVar_ modifyMVar