anchor.diff:                  AvlTree.Join (comparer, left, right', (a, b)), head, stream
   
               elif b >= y then
  -                AvlTree.TryExtractMin stream
  +                AvlTree.TryDeleteMin stream
                   ||> union_helper left (min a x, b) right limit
   
               elif greater_limit limit y then
  
positive.code:         | Some (x, y) ->
              if y < a then
                  // [x, y] and [a, b] are disjoint
                  AvlTree.TryExtractMin stream
                  ||> diff_helper (a, b) right left
              elif b < x then
                  // [a, b] and [x, y] are disjoint
  
negative.code:             set
          | Node (_,_,_,lh), Node (_,_,_,rh) ->
              if lh > rh then
                  let root, l' = AvlTree.DeleteMax l
                  AvlTree.Join (comparer, l', r, root)
              else
                  let root, r' = AvlTree.DeleteMax r
                  AvlTree.Join (comparer, l, r', root)
                  
  
  