sig
  module Fresh_name :
    sig
      module Int :
        sig type t = int val new_generator : int -> unit -> int end
    end
  val dichotomy_extended :
    ('a -> 'a -> 'a) ->
    ('a -> 'a) ->
    ('a -> 'a) -> ('a -> Femtolib.Pervasives.comparison) -> 'a -> 'a -> 'a
  val dichotomy :
    (int -> Femtolib.Pervasives.comparison) -> int -> int -> int
end