anchor.diff:  
       /// 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 head stream =
  +        let rec diff' (input : CharDiet) head (stream : CharDiet) : CharDiet * (char * char) option * CharDiet =
               match head with
               | None ->
                   input, 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: 
      /// Computes the intersection of the two sets.
      let rec intersect (input : CharDiet) (stream : CharDiet) : CharDiet =
          let rec inter' (input : CharDiet) head (stream : CharDiet) : CharDiet * (char * char) option * CharDiet =
              match head with
              | None ->
                  Empty, None, Empty
  