functor (T : T_set->
  sig
    module type S =
      sig
        val create :
          ('Interval_intf.T.bound * 'Interval_intf.T.bound) list ->
          'Interval_intf.T.t
        val create_from_intervals :
          'T.interval list -> 'Interval_intf.T.t
        val contains :
          'Interval_intf.T.t -> 'Interval_intf.T.bound -> bool
        val contains_set :
          container:'Interval_intf.T.t ->
          contained:'Interval_intf.T.t -> bool
        val ubound_exn : 'Interval_intf.T.t -> 'Interval_intf.T.bound
        val lbound_exn : 'Interval_intf.T.t -> 'Interval_intf.T.bound
        val ubound : 'Interval_intf.T.t -> 'Interval_intf.T.bound option
        val lbound : 'Interval_intf.T.t -> 'Interval_intf.T.bound option
      end
  end