anchor.diff:  -opaque interval() :: [simple_interval()].
   -opaque invalid_interval() :: [simple_interval()].
   -type continuous_interval() :: interval().
  +-type non_empty_interval() :: interval().
   
   % @type interval() = [simple_interval()].
   % [] -> empty interval
  
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:          %
           % for unit testing only
           is_well_formed/1, tester_create_interval/1,
           is_well_formed_simple/1,
           tester_create_simple_interval/1, tester_create_continuous_interval/4,
           tester_create_non_empty_interval/2,
           split_feeder/2
          ]).
  
  -ifdef(with_export_type_support).
  -export_type([interval/0, key/0, left_bracket/0, right_bracket/0,
                continuous_interval/0, non_empty_interval/0]).
  % for tester:
  -export_type([invalid_interval/0, invalid_simple_interval/0, simple_interval/0]).
  -endif.
  