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