functor (T : Indexable1) -> sig val binary_search : ?pos:int -> ?len:int -> 'a T.t -> compare:('a -> 'a -> int) -> 'a -> int option end