anchor.diff:  
       /// Computes the intersection of the two sets.
       let rec intersect (input : CharDiet) (stream : CharDiet) : CharDiet =
  -        let rec inter' (input : CharDiet) head (stream : CharDiet) =
  +        let rec inter' (input : CharDiet) head (stream : CharDiet) : CharDiet * (char * char) option * CharDiet =
               match head with
               | None ->
                   Empty, None, Empty
  
positive.code: 
      /// Computes the union of the two sets.
      let rec union (input : CharDiet) (stream : CharDiet) : CharDiet =
          let rec union' (input : CharDiet) limit head (stream : CharDiet) =
              match head with
              | None ->
                  input, None, Empty
  
negative.code:                             left, head, stream
                      union_helper left' (a, b) right limit head stream
  
          and union_helper left (a, b) (right : CharDiet) limit head stream =
              match head with
              | None ->
                  AvlDiet.join (a, b) left right, None, Empty
  