anchor.diff:      //
       let rec toSeq (tree : CharDiet) =
           // Preconditions
  -        assert (AvlTree.AvlInvariant tree)
  +        assert (dietInvariant tree)
   
           seq {
           match tree with
  
positive.code:         | Node (left, right, (x, y), _) ->
              if b < pred x then
                  let left' = addRange (a, b) left
                  assert (AvlTree.AvlInvariant left')
                  AvlTree.Join (comparer, left', right, (x, y))
              elif a > succ y then
                  let right' = addRange (a, b) right
                  assert (AvlTree.AvlInvariant right')
                  AvlTree.Join (comparer, left, right', (x, y))
              else
                  // Now, we know the interval (a, b) being inserted either overlaps or is
  
negative.code:         AvlTree.Singleton (value, value)
  
      /// Creates a DIET containing the specified range of values.
      let ofRange (a, b) : CharDiet =
          if a > b then
              invalidArg "b" "The upper bound of the interval is less than the lower bound."
  
          AvlTree.Singleton (a, b)
  
      /// Returns a new set with the specified value added to the set.
      /// No exception is thrown if the set already contains the value.
      let rec add value (tree : CharDiet) : CharDiet =
          // Preconditions
          assert (dietInvariant tree)
  
          match tree with
          | Empty ->
  