anchor.diff:                 % filter out {element, X >= ?PLUS_INFINITY} which is invalid:
                  not (is_tuple(I) andalso element(1, I) =:= element andalso element(2, I) >= ?PLUS_INFINITY)],
       normalize_internal(List1).
  +
  +-spec tester_create_non_empty_interval([simple_interval(),...], FallbackElem::key())
  +        -> non_empty_interval().
  +tester_create_non_empty_interval(List, FallbackElem) ->
  +    I = tester_create_interval(List),
  +    case is_empty(I) of
  +        true  -> new(FallbackElem);
  +        false -> I
  +    end.
   
   -spec tester_create_continuous_interval(left_bracket(), key(), key() | ?PLUS_INFINITY, right_bracket()) -> continuous_interval().
   tester_create_continuous_interval(_LBr, Key, Key, _RBr) ->
  
positive.code: 
  -export([empty/0, new/1, new/4, all/0, from_elements/1,
           % testing / comparing intervals
           is_empty/1, is_all/1, is_subset/2, is_continuous/1,
           is_adjacent/2, in/2,
           is_left_of/2, is_right_of/2,
           split/2,
  
negative.code: -opaque interval() :: [simple_interval()].
  -opaque invalid_interval() :: [simple_interval()].
  -type continuous_interval() :: interval().
  -type non_empty_interval() :: interval().
  
  % @type interval() = [simple_interval()].
  % [] -> empty interval
  