anchor.diff:  
       /// Computes the union of the two sets.
       let rec union (input : CharDiet) (stream : CharDiet) : CharDiet =
  -        let rec union' (input : CharDiet) limit head (stream : CharDiet) =
  +        let rec union' (input : CharDiet) limit head (stream : CharDiet)
  +            : CharDiet * (char * char) option * CharDiet =
               match head with
               | None ->
                   input, None, Empty
  
positive.code:                             left, head, stream
                      union_helper left' (a, b) right limit head stream
  
          and union_helper left (a, b) right limit head stream =
              match head with
              | None ->
                  AvlDiet.join (a, b) left right, None, Empty
  
negative.code: 
      /// Returns a new set with the elements of the second set removed from the first.
      let difference (input : CharDiet) (stream : CharDiet) : CharDiet =
          let rec diff' (input : CharDiet) head (stream : CharDiet) : CharDiet * (char * char) option * CharDiet =
              match head with
              | None ->
                  input, None, Empty
  