Module Base.Binary_searchable
module type S = sig ... endmodule type S1 = sig ... endtype nonrec ('t, 'elt, 'key) binary_search =
  ?pos:int ->
  ?len:int ->
  't ->
  compare:('elt -> 'key -> 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 ] ->
  'key ->
  int optiontype nonrec ('t, 'elt) binary_search_segmented =
  ?pos:int ->
  ?len:int ->
  't ->
  segment_of:('elt -> [ `Left | `Right ]) ->
  [ `Last_on_left | `First_on_right ] ->
  int option