anchor.diff:          cache.Remove key
   
       //
  +    [<CompiledName("TryExtract")>]
  +    let inline tryExtract (key : 'Key) (cache : LruCache<'Key, 'T>) : ('Key * 'T) option * LruCache<'Key, 'T> =
  +        // Preconditions
  +        checkNonNull "cache" cache
  +
  +        cache.TryExtract key
  +
  +    //
       [<CompiledName("OfSeq")>]
       let ofSeq (capacity : uint32) (source : seq<'Key * 'T>) : LruCache<'Key, 'T> =
           // Preconditions checked within the member.
  
positive.code: /// <typeparam name="Key">The type of key used by the cache.</typeparam>
  /// <typeparam name="T">The type of the values stored in the cache.</typeparam>
  [<Sealed; NoComparison>]
  [<DebuggerDisplay("Count = {Count}, Capacity = {Capacity}")>]
  type LruCache<'Key, [<EqualityConditionalOn>] 'T when 'Key : comparison>
      private (cache : HashMap<'Key, KeyValuePair<int, 'T>>, indexedKeys : IntMap<'Key>,
               capacity : uint32, currentIndex : uint32) =
  
negative.code:         | None ->
              None, this
          | Some keyIndexAndValue ->
              Some (snd keyIndexAndValue),
              this'.Add (key, snd keyIndexAndValue)
  
      /// Tests if a key is in the domain of the cache.
      member __.ContainsKey (key : 'Key) : bool =
  