anchor.diff:              input, None, Empty
           | _, Empty ->
               Empty, head, stream
  -        | Some (x, y), Node (left, right, (a, b), _) ->
  +        | Some (x, _), Node (left, right, (a, b), _) ->
               assert (dietInvariant left)
               assert (dietInvariant right)
               assert (intervalsDisjoint left)
  
positive.code:         match tree with
          | Empty ->
              Empty
          | Node (left, right, (x, y), h) ->
              let czx = compare value x
              if czx < 0 then
                  // value < x, so recurse down the left subtree.
  
negative.code:             input, None, Empty
          | _, Empty ->
              Empty, head, stream
          | Some (x, _), Node (left, right, (a, b), _) ->
              let left, head, stream =
                  if x < a then
                      diffImpl left head stream
  