sig
  module type S = S
  module type S1 = S1
  module type S1_permissions = S1_permissions
  module type Indexable = Indexable
  module type Indexable1 = Indexable1
  module Make :
    functor (T : Indexable->
      sig
        val binary_search : (T.t, T.elt) binary_search
        val binary_search_segmented : (T.t, T.elt) binary_search_segmented
      end
  module Make1 :
    functor (T : Indexable1->
      sig
        val binary_search : ('T.t, 'a) binary_search
        val binary_search_segmented : ('T.t, 'a) binary_search_segmented
      end
end