sig
type comparison = int
val cmp_fasc : ('a -> 'comparable) -> 'a -> 'a -> comparison
val cmp_fdesc : ('a -> 'comparable) -> 'a -> 'a -> comparison
val maxf : ('a -> 'comparable) -> 'a -> 'a -> 'a
val minf : ('a -> 'comparable) -> 'a -> 'a -> 'a
val in_order : 'a list -> cmp:('a -> 'a -> comparison) -> bool
val max_len : key:('a -> string) -> 'a array -> comparison
val bsearch :
f:(comparison -> comparison) ->
low:comparison -> high:comparison -> comparison option
val bsearch_opt :
f:(comparison -> comparison) ->
low:comparison -> high:comparison -> comparison option
val bsearch_exn :
f:(comparison -> comparison) ->
low:comparison -> high:comparison -> comparison
type poly_comparison = [ `Good | `High | `Low ]
val bsearch2 :
f:(comparison -> poly_comparison) ->
low:comparison -> high:comparison -> comparison option
val bsearch2_opt :
f:(comparison -> poly_comparison) ->
low:comparison -> high:comparison -> comparison option
val bsearch2_exn :
f:(comparison -> poly_comparison) ->
low:comparison -> high:comparison -> comparison
val bsearch_val :
f:(comparison -> comparison * 'a) ->
low:comparison -> high:comparison -> (comparison * 'a) option
val bsearch_val_opt :
f:(comparison -> comparison * 'a) ->
low:comparison -> high:comparison -> (comparison * 'a) option
val bsearch_val_exn :
f:(comparison -> comparison * 'a) ->
low:comparison -> high:comparison -> comparison * 'a
end