anchor.diff:          | :? ('T SkewBinomialHeap System.IEquatable) as eheap -> eheap.Equals this
           | _ -> false
   
  -    override this.GetHashCode () = match hash with Lazy h -> h
  +    override __.GetHashCode () = match hash with Lazy h -> h
   
       interface IEnumerable<'T> with
  -        member this.GetEnumerator () = (SBHTreeRoot.toListOrdered descending roots |> List.toSeq).GetEnumerator ()
  +        member __.GetEnumerator () = (SBHTreeRoot.toListOrdered descending roots |> List.toSeq).GetEnumerator ()
           
           member this.GetEnumerator (): System.Collections.IEnumerator = upcast (this :> _ seq).GetEnumerator ()        
   
  
positive.code:         | Some h -> h
          | _      -> raise (IncompatibleMerge "Can not merge two heaps with diferent comparison methods")
  
      member this.TryHead () =
          if count = 0
              then None
              else Some (SBHTreeRoot.findMinRootItem descending roots)
  
negative.code: 
      new(descending) = SkewBinomialHeap(0, descending, [])
  
      member private __.Roots = roots
          
      member __.Count = count
  
      member __.IsDescending = descending
  
      member __.IsEmpty = count = 0
  
      member __.Insert value =
          SkewBinomialHeap (count + 1, descending, SBHTreeRoot.insert descending value roots)
  
      member __.TryMerge (other: 'T SkewBinomialHeap) =
          if descending = other.IsDescending 
              then Some (SkewBinomialHeap (count + other.Count, descending, SBHTreeRoot.mergeRoots descending (SBHTreeRoot.normalize descending roots) (SBHTreeRoot.normalize descending other.Roots)))
              else None
  