anchor.diff:      /// Applies the given accumulating function to all the elements of the set.
       [<CompiledName("Fold")>]
       let fold (folder : 'State -> char -> 'State) (state : 'State) tree =
  +        let folder = FSharpFunc<_,_,_>.Adapt folder
           foldImpl folder state tree id
   
       //
  -    let rec private foldBackImpl (folder : char -> 'State -> 'State) tree (state : 'State) cont =
  +    let rec private foldBackImpl (folder : FSharpFunc<char, 'State, 'State>) tree (state : 'State) cont =
           match tree with
           | Empty ->
               cont state
  
positive.code:     /// Applies the given accumulating function to all the elements of the set.
      [<CompiledName("FoldBack")>]
      let foldBack (folder : char -> 'State -> 'State) tree (state : 'State) =
          foldBackImpl folder tree state id
  
      /// Returns a new set containing the results of applying the given function to each element of the input set.
      [<CompiledName("Map")>]
  
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)
  