anchor.diff:  
   -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_empty/1, is_non_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,
  
positive.code: -spec is_empty(interval()) -> boolean().
  is_empty([]) -> true;
  is_empty(_) ->  false.
  
  %% @doc Checks whether the given interval is covering everything.
  -spec is_all(interval()) -> boolean().
  
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
  