anchor.diff:                                  assert (dietInvariant x)
                                   assert (fst <| intervalsDisjoint x Set.empty))
   
  -            elif value < pred x then
  +            elif value < safePred x then
                   CharDiet.Join (comparer, add value left, right, (x, y))
                   |> tap (fun x ->
                       assert (dietInvariant x)
  
positive.code:                 false, elements
              | true, elements ->
                  // Check that this interval (a, b) is disjoint from the other elements seen so far.
                  let disjoint = Set.isEmpty elements || (Set.maxElement elements < pred a)
  
                  // Make sure none of the values in this interval have been seen already.
                  let disjointSet = not <| Range.exists (fun x -> Set.contains x elements) a b
  
negative.code:         assert (CharDiet.Height input >= CharDiet.Height stream)
          assert (dietInvariant input)
          assert (dietInvariant stream)
          assert (fst <| intervalsDisjoint input Set.empty)
          assert (fst <| intervalsDisjoint stream Set.empty)
  
          match head, input with
          | None, _->
  