sig
  type completer = left:string -> right:string -> string list
  module History :
    sig
      type t = Readline.History.t
      val create : int -> t
      val flush : t -> unit
      val to_list : t -> string list
      val of_list : ?size:int -> string list -> t
    end
  val input_line :
    ?history:History.t ->
    ?prompt:string -> ?tab_completion:completer -> unit -> string
end