sig
  type t
  val create : ?text:string -> string list -> Readline__input_loop.t
  val print :
    prompt:string ->
    map_out:(string -> string) -> Readline__input_loop.t -> unit
  val contents : Readline__input_loop.t -> string
  type input =
      [ `Backspace
      | `Char of char
      | `Delete
      | `Down
      | `End
      | `Eof
      | `Home
      | `Left
      | `Right
      | `Tab
      | `Unknown_escape of string * int option * int option
      | `Up ]
  val step :
    ?completion:(left:string -> right:string -> string list) ->
    Readline__input_loop.t ->
    Readline__input_loop.input -> Readline__input_loop.t
  val ounit_tests : unit -> OUnit.test
end