anchor.diff:                  inputCount + streamCount
               #endif
   
  -            let result =
  -                let result, head', stream'' =
  -                    let head, stream' = AvlTree.TryExtractMin stream
  -                    union' input None head stream'
  -
  -                match head' with
  -                | None ->
  -                    result
  -                | Some i ->
  -                    AvlTree.Join comparer i result stream''
  +            // TEMP : This is a naive implementation of the union operation --
  +            // we only use it here to help track down the bug in the union operation
  +            // and to test that the rest of the code works correctly.
  +            let result = AvlTree.FoldBack addRange stream input
  +
  +//            let result =
  +//                let result, head', stream'' =
  +//                    AvlTree.TryExtractMin stream
  +//                    ||> union' input None
  +//
  +//                match head' with
  +//                | None ->
  +//                    result
  +//                | Some i ->
  +//                    AvlTree.Join comparer i result stream''
   
               #if DEBUG
               let resultCount = count result
  
positive.code:             elif a > succ y then
                  AvlTree.Join comparer (x, y) left (addRange (a, b) right)
              else
                  let x', left' =
                      if a >= x then x, left
                      else find_del_left a left
  
negative.code:             left, None, Empty
          | Some (x, y) ->
              if y < a then
                  match stream with
                  | Empty ->
                      left, None, Empty
                  | _ ->
                      let head, stream = AvlTree.ExtractMin stream
                      inter_helper (a, b) right left (Some head) stream
              elif b < x then
  