anchor.diff:      member m.ChooseMonotonic<'Key2, 'Value2 when 'Key2 : comparison> (f : 'Key -> 'Value -> option<'Key2 * 'Value2>) : MapExt<'Key2,'Value2> = 
           new MapExt<'Key2,'Value2>(LanguagePrimitives.FastGenericComparer<'Key2>, MapTree.chooseiMonotonic f tree)
       
  -    member x.GetReference key =
  +    member internal x.GetReference key =
           MapTree.getReference comparer 0 key tree
           
       member x.TryIndexOf key =
  
positive.code:         let mutable res = 0
          for (KeyValue(x,y)) in this do
              res <- combineHash res (hash x)
              res <- combineHash res (DefaultEquality.hash y)
          abs res
  
      override this.Equals(that) = 
  
negative.code: [<System.Diagnostics.DebuggerDisplay("Count = {Count}")>]
  [<Sealed>]
  [<StructuredFormatDisplay("{AsString}")>]
  type MapExt<[<EqualityConditionalOn>]'Key,[<EqualityConditionalOn;ComparisonConditionalOn>]'Value when 'Key : comparison > internal(comparer: IComparer<'Key>, tree: MapTree<'Key,'Value>) =
  
      static let defaultComparer = LanguagePrimitives.FastGenericComparer<'Key> 
      // We use .NET generics per-instantiation static fields to avoid allocating a new object for each empty
  