Module types for a binary_search
function for a sequence, and functors for building
binary_search
functions.
module type Indexable : sig ... end
An Indexable
type is a finite sequence of elements indexed by consecutive integers
0
... length t - 1
. get
and length
must be O(1) for the resulting
binary_search
to be lg(n).
module type Indexable1 : sig ... end
type ('t, 'elt) binary_search
= ?pos:int ‑> ?len:int ‑> 't ‑> compare:('elt ‑> 'elt ‑> int) ‑> [ `Last_strictly_less_than | `Last_less_than_or_equal_to | `Last_equal_to | `First_equal_to | `First_greater_than_or_equal_to | `First_strictly_greater_than ] ‑> 'elt ‑> int option
type ('t, 'elt) binary_search_segmented
= ?pos:int ‑> ?len:int ‑> 't ‑> segment_of:('elt ‑> [ `Left | `Right ]) ‑> [ `Last_on_left | `First_on_right ] ‑> int option
module type S : sig ... end
module type S1 : sig ... end
module type Binary_searchable : sig ... end