anchor.diff:  //****************************************************************************************************
   //TODO: Implement equality to be able to compare two heaps
   //TODO: Maybe implement comparison too?
  -type 'T SkewBinomialHeap when 'T: comparison private (count, descending, roots: 'T SBHTreeRoot list) = 
  +type 'T SkewBinomialHeap when 'T: comparison private (count, descending, roots: 'T SBHTreeRoot list) =
  +    
  +    static let hashElements = 20
  +
  +    let hash = lazy(
  +        let rec hashIt n hash roots =
  +            if n = 0 then
  +                hash
  +            else
  +                let h, t = SBHTreeRoot.uncons descending roots
  +                hashIt (n - 1) (hash * 397 ^^^ Operators.hash h) t
  +        hashIt (min hashElements count) 0 roots)
           
       new() = SkewBinomialHeap(0, false, [])
   
  
positive.code:     member this.ToList () =
          SBHTreeRoot.toListOrdered descending roots
  
      interface IEnumerable<'T> with
          member this.GetEnumerator () = (SBHTreeRoot.toListOrdered descending roots |> List.toSeq).GetEnumerator ()
          
  
negative.code:         if count = 0 then
              None
          else
              Some (SkewBinomialHeap (count - 1, descending, SBHTreeRoot.uncons descending roots |> snd))
  
      member this.Tail () =
          match this.TryTail () with
  