A set of locations (e.g. a set of gene loci)

type t
val empty : t
val to_stream : t -> GLoc.t Stream.t
val of_stream : GLoc.t Stream.t -> t
val intersects : t -> GLoc.t -> bool

intersects lset loc returns true if loc has a non-empty intersection with one of the locations in lset, and returns false otherwise

val closest : t -> GLoc.t -> (GLoc.t * int) option

closest lset loc returns the GLoc.t in lset that is the closest to loc, along with the actual (minimal) distance. Returns None if there is no GLoc.t in lset that comes from the same chromosome than loc.

val intersecting_elems : t -> GLoc.t -> GLoc.t Stream.t

intersecting_elems lset loc returns a stream of all locations in lset that intersect loc.