sig
  type t = Biocaml_range.t = private { lo : int; hi : int; }
  exception Bad of string
  val make : int -> int -> t
  val to_pair : t -> int * int
  val make_opt : int -> int -> t option
  val size : t -> int
  val member : t -> int -> bool
  val to_string : t -> string
  val to_list : t -> int list
  val overlap : t -> t -> int
  val gap : t -> t -> int
  val union : t -> t -> t list
  val intersect : t -> t -> t option
  val before : t -> t -> bool
  val after : t -> t -> bool
  val strict_before : t -> t -> bool
  val strict_after : t -> t -> bool
  val compare_positional : t -> t -> int option
  val subset : t -> t -> bool
  val superset : t -> t -> bool
  val strict_subset : t -> t -> bool
  val strict_superset : t -> t -> bool
  val compare_containment : t -> t -> int option
  val compare_lo_then_hi : t -> t -> int
  val compare_lo : t -> t -> int
  val compare_hi : t -> t -> int
  val any_overlap : t list -> bool
  val all_positional : t list -> bool
  val max_gap_of_positional : t list -> int
  val find_min_range :
    ?init_direction:string -> t -> (t -> bool) -> int -> t option
  val expand_assoc_list : (t * 'a) list -> (int * 'a list) list
  val find_regions : ?max_gap:int -> ('-> bool) -> (t * 'a) list -> t list
  val make_random : t -> t
  val t_of_sexp : Sexplib.Sexp.t -> t
  val sexp_of_t : t -> Sexplib.Sexp.t
end