anchor.diff:      /// Computes the intersection of the two sets.
       [<CompiledName("Intersect")>]
       let intersect set1 set2 =
  -        // OPTIMIZE : This needs to be re-implemented in a
  -        // much more efficient way for it to be useful!
  +        // OPTIMIZE : This could probably be re-implemented to walk both
  +        // trees at once, building a new set from the bottom up. This would
  +        // avoid multiple traversals of both set trees and the result set tree.
   
           // TEMP : This works, but it's **slow**.
           let smaller, larger =
  
positive.code:                 contains value r
  
      //
      let rec private foldImpl (folder : 'State -> char -> 'State) (state : 'State) tree cont =
          match tree with
          | Empty ->
              cont state
  
negative.code:     /// Returns a new set with the elements of the second set removed from the first.
      [<CompiledName("Difference")>]
      let difference set1 set2 =
          // OPTIMIZE : This could probably be re-implemented to walk both
          // trees at once, building a new set from the bottom up. This would
          // avoid multiple traversals of both set trees and the result set tree.
  
          // TEMP : This works, but it's **slow**.
          (empty, set1)
  