anchor.diff:          with get () =
               IntMap.count indexedKeys
   
  +    /// The oldest (least-recently-used) key stored in the map.
  +#if FX_NO_DEBUG_DISPLAYS
  +#else
  +    [<DebuggerBrowsable(DebuggerBrowsableState.Never)>]
  +#endif
  +    member __.LeastRecentKey
  +        with get () : int =
  +            // TODO : This needs to be modified to handle roll-over of key-indices.
  +            int <| IntMap.minKey indexedKeys
  +
  +    /// The newest (most-recently-used) key stored in the map.
  +#if FX_NO_DEBUG_DISPLAYS
  +#else
  +    [<DebuggerBrowsable(DebuggerBrowsableState.Never)>]
  +#endif
  +    member __.MostRecentKey
  +        with get () : int =
  +            // TODO : This needs to be modified to handle roll-over of key-indices.
  +            int <| IntMap.maxKey indexedKeys
  +
       /// Look up a key in the cache, returning Some with the associated value if
       /// if the key is in the domain of the cache and None if not. The (possibly)
       /// updated cache is also returned.
       member this.TryFind (key : 'Key) : 'T option * LruCache<'Key, 'T> =
           // Try extracting the key/value from the cache.
  -        let value, this' = this.Extract key
  +        let value, this' = this.TryExtract key
   
           // If the key was found (and the value extracted), re-insert the key/value
           // in the cache so the key's index will be updated.
  
positive.code:         cache.Remove key
  
      //
      [<CompiledName("OfSeq")>]
      let ofSeq (capacity : uint32) (source : seq<'Key * 'T>) : LruCache<'Key, 'T> =
          // Preconditions checked within the member.
  
negative.code:             // Return the new cache with the modified maps.
              // NOTE : The index is not updated here -- that is only done
              // when adding values to the cache.
              Some (key, keyIndexAndValue.Value),
              LruCache (cache', indexedKeys', capacity, currentIndex)
  
      //
  