anchor.diff:                      if czx = 0 then
                           CharDiet.Reroot (comparer, left, right)
                       else
  -                        CharDiet.Create ((x, safePred y), left, right)
  +                        CharDiet.Create (left, right, (x, safePred y))
                   elif czx = 0 then
  -                    CharDiet.Create ((safeSucc x, y), left, right)
  +                    CharDiet.Create (left, right, (safeSucc x, y))
                   else
  -                    CharDiet.Create ((x, safePred value), left, right)
  +                    CharDiet.Create (left, right, (x, safePred value))
                       |> addRange (safeSucc value, y)
   
       /// Determines if a value is greater than or equal to a given
  
positive.code:                 else
                      match right with
                      | Empty ->
                          CharDiet.Create ((x, value), left, Empty)
                      | _ ->
                          let (u, v), r = CharDiet.DeleteMin right
                          if safePred u = value then
                              CharDiet.Join (comparer, left, r, (x, v))
                          else
                              CharDiet.Create ((x, value), left, right)
  
              elif value < safePred x then
                  CharDiet.Join (comparer, add value left, right, (x, y))
              else
                  match left with
                  | Empty ->
                      CharDiet.Create ((value, y), Empty, right)
                  | _ ->
                      let (u, v), l = CharDiet.DeleteMax left
                      if safeSucc v = value then
                          CharDiet.Join (comparer, l, right, (u, y))
                      else
                          CharDiet.Create ((value, y), left, right)
  
      /// Returns a new set with the specified range of values added to the set.
      /// No exception is thrown if any of the values are already contained in the set.
  
negative.code:                 // one of the nodes must have height > height r + 1
                  if AvlTree.Height ll >= AvlTree.Height lr then
                      AvlTree.Create (
                          ll,
                          AvlTree.Create (lr, r, n),
                          ln)
                  else
                      // balance right: combination
                      match lr with
  