sig
  type completer = left:string -> right:string -> string list
  module History :
    sig
      type t
      val null : Readline.History.t
      val default : Readline.History.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 ->
    ?text:string ->
    ?tab_completion:Readline.completer -> unit -> string option
  val input_line_eof :
    ?history:Readline.History.t ->
    ?prompt:string ->
    ?text:string -> ?tab_completion:Readline.completer -> unit -> string
  val password : ?prompt:string -> unit -> string option
  val confirm : ?prompt:string -> string -> bool
  val choice : (string * 'a) list -> 'a option
  val ounit_tests : unit -> OUnit.test
end