anchor.diff:              None, tree
           | Node (l, Empty, n, _) ->
               Some n, l
  -        | Node (l, right, n, _) ->
  -            let na, r = AvlTree.TryDeleteMax right
  -            match na with
  -            | None ->
  -                na, l
  -            | Some _ ->
  -                na, AvlTree.mkt_bal_l (n, l, r)
  +        | Node (l, r, n, _) ->
  +            let n', r' = AvlTree.DeleteMax r
  +            Some n', r'
   
       /// Removes the specified value from the tree.
       /// If the tree doesn't contain the value, no exception is thrown;
  
positive.code:             invalidArg "tree" "Cannot delete the minimum value from an empty tree."
          | Node (Empty, r, n, _) ->
              n, r
          | Node (left, r, n, _) ->
              let na, l = AvlTree.DeleteMin left
              na, AvlTree.mkt_bal_r (n, l, r)
  
      /// Removes the maximum (greatest) value from an AvlTree,
      /// returning the value along with the updated tree.
  
negative.code:             let result, _, _ =
                  CharDiet.TryDeleteMin stream
                  ||> inter' input
              
              Debug.Assert (
                  dietInvariant result,
                  "The DIET invariant does not hold for the result.")
              Debug.Assert (
                  fst <| intervalsDisjoint result Set.empty,
                  "The intervals in the DIET are not disjoint.")
  
              #if DEBUG
              let resultCount = count result
  