anchor.diff:          : CharDiet * (char * char) option * CharDiet =
           // Preconditions
           assert (AvlTree.Height input >= AvlTree.Height stream)
  -        assert (AvlTree.AvlInvariant input)
  -        assert (AvlTree.AvlInvariant stream)
  +        assert (dietInvariant input)
  +        assert (dietInvariant stream)
   
           match head, input with
           | None, _ ->
  
positive.code:         // OPTIMIZATION : If the result is the same as either input set's tree,
          // return that set instead of creating a new one.
          let result = CharDiet.union charSet1.Tree charSet2.Tree
          if charSet1.Tree === result then charSet1
          elif charSet2.Tree === result then charSet2
          else CharSet (result)
  
negative.code:         // OPTIMIZATION : If the resulting tree is the same as the original, return
          // the input set instead of creating a new set.
          let result = CharDiet.add value charSet.Tree
          assert (CharDiet.dietInvariant result)
          if charSet.Tree === result then charSet
          else CharSet (result)
  
  