anchor.diff:      //
       [<CompiledName("OfSeq")>]
       let inline ofSeq (source : seq<'Key * 'T>) : LruCache<'Key, 'T> =
  -        // Preconditions
  -        checkNonNull "source" source
  -
  +        // Preconditions checked within the member.
           LruCache.OfSeq source
   
       //
       [<CompiledName("OfList")>]
       let inline ofList (source : ('Key * 'T) list) : LruCache<'Key, 'T> =
  -        // Preconditions
  -        checkNonNull "source" source
  -
  +        // Preconditions checked within the member.
           LruCache.OfList source
   
       //
       [<CompiledName("OfArray")>]
       let inline ofArray (source : ('Key * 'T)[]) : LruCache<'Key, 'T> =
  -        // Preconditions
  -        checkNonNull "source" source
  -
  +        // Preconditions checked within the member.
           LruCache.OfArray source
   
       //
  
positive.code: 
      //
      [<CompiledName("TryFind")>]
      let inline tryFind (key : 'Key) (cache : LruCache<'Key, 'T>) : ('T * LruCache<'Key, 'T>) option =
          // Preconditions
          checkNonNull "cache" cache
  
  
negative.code: open ExtCore
  open ExtCore.Collections
  
  
  (* OPTIMIZE :   In the HashMap used in the cache, change the KeyValuePair to a simple struct-tuple
                  so we can flip the order the index and value are stored in; this'll provide better
                  data alignment in most cases. (E.g., name the type ValueWithKeyIndex) *)
  // TODO : Perhaps use TagMap instead of IntMap, and tag the key indices with a tag type like KeyIndex.
  
  /// An immutable cache data structure with a Least-Recently-Used (LRU) eviction policy.
  type LruCache<'Key, 'T when 'Key : equality>
  