sig
  type t
  val create : ?eol:char -> (string -> unit) -> Shell__line_buffer.t
  val flush : Shell__line_buffer.t -> unit
  val add_char : Shell__line_buffer.t -> char -> unit
  val add_string : Shell__line_buffer.t -> string -> unit
  val add_substring :
    Shell__line_buffer.t -> string -> pos:int -> len:int -> unit
  val ounit_tests : unit -> OUnit.test
end