anchor.diff:          | None ->
               AvlTree.Join comparer (a, b) left right, None, Empty
           | Some (x, y) ->
  -            let greater_limit z =
  -                match limit with
  -                | None -> false
  -                | Some u ->
  -                    z >= u
  -
               if y < a && y < pred a then
                   let left' = addRange (x, y) left
                   let head, stream = AvlTree.TryExtractMin stream
  
positive.code:                 else compare iy1 iy2
              if c <> 0 then c
              else comparison r1 r2
          
          | Node (_,_,_,_), Empty -> 1
          | Empty, Empty -> 0
          | Empty, Node (_,_,_,_) -> -1
  
      /// Equality function for DIETs.
      let equal (t1 : CharDiet) (t2 : CharDiet) =
  
negative.code:         | Some (x, y) ->
              if y < a then
                  if AvlTree.IsEmptyTree stream then
                      left, None, Empty
                  else
                      let head, stream = AvlTree.ExtractMin stream
                      inter_helper (a, b) right left (Some head) stream
              elif b < x then
                  let right, head, stream = inter' right head stream
                  AvlTree.Reroot comparer left right, head, stream
              elif y >= clampedPred y b then
                  let right, head, stream = inter' right head stream
                  let right' = AvlTree.Join comparer (max x a, min y b) left right
                  right', head, stream
              else
                  let left = addRange (max x a, y) left
                  inter_helper (succ y, b) right left head stream
  