sig
  module type S = Binary_searchable_intf.S
  module type S1 = Binary_searchable_intf.S1
  module type Indexable = Binary_searchable_intf.Indexable
  module type Indexable1 = Binary_searchable_intf.Indexable1
  module Make :
    functor (T : Indexable->
      sig
        val binary_search :
          ?pos:int ->
          ?len:int ->
          T.t -> compare:(T.elt -> T.elt -> int) -> T.elt -> int option
      end
  module Make1 :
    functor (T : Indexable1->
      sig
        val binary_search :
          ?pos:int ->
          ?len:int -> 'T.t -> compare:('-> '-> int) -> '-> int option
      end
end