sig
  val version : string
  val count : int React.signal
  val keywords : Set.Make(String).t Pervasives.ref
  val add_keyword : string -> unit
  type ui = Console | Emacs
  val get_ui : unit -> UTop.ui
  val hide_reserved : bool React.signal
  val get_hide_reserved : unit -> bool
  val set_hide_reserved : bool -> unit
  val show_box : bool React.signal
  val get_show_box : unit -> bool
  val set_show_box : bool -> unit
  type syntax = Normal | Camlp4o | Camlp4r
  val syntax : UTop.syntax React.signal
  val get_syntax : unit -> UTop.syntax
  val set_syntax : UTop.syntax -> unit
  val phrase_terminator : string React.signal
  val get_phrase_terminator : unit -> string
  val set_phrase_terminator : string -> unit
  val auto_run_lwt : bool React.signal
  val get_auto_run_lwt : unit -> bool
  val set_auto_run_lwt : bool -> unit
  val auto_run_async : bool React.signal
  val get_auto_run_async : unit -> bool
  val set_auto_run_async : bool -> unit
  val history : LTerm_history.t
  val history_file_name : string option Pervasives.ref
  val history_file_max_size : int option Pervasives.ref
  val history_file_max_entries : int option Pervasives.ref
  type profile = Dark | Light
  val profile : UTop.profile React.signal
  val set_profile : UTop.profile -> unit
  val size : LTerm_geom.size React.signal
  val key_sequence : LTerm_key.t list React.signal
  val time : float Pervasives.ref
  val prompt : LTerm_text.t React.signal Pervasives.ref
  val new_command_hooks : (unit -> unit) Lwt_sequence.t
  val at_new_command : (unit -> unit) -> unit
  type location = int * int
  type 'a result = Value of '| Error of UTop.location list * string
  exception Need_more
  val parse_use_file :
    (string -> bool -> Parsetree.toplevel_phrase list UTop.result)
    Pervasives.ref
  val parse_use_file_default :
    string -> bool -> Parsetree.toplevel_phrase list UTop.result
  val parse_toplevel_phrase :
    (string -> bool -> Parsetree.toplevel_phrase UTop.result) Pervasives.ref
  val parse_toplevel_phrase_default :
    string -> bool -> Parsetree.toplevel_phrase UTop.result
  val parse_default :
    (Lexing.lexbuf -> 'a) -> string -> bool -> 'UTop.result
  val input_name : string
  val lexbuf_of_string : bool Pervasives.ref -> string -> Lexing.lexbuf
  val get_message : (Format.formatter -> '-> unit) -> '-> string
  val get_ocaml_error_message : exn -> UTop.location * string
  val check_phrase :
    Parsetree.toplevel_phrase -> (UTop.location list * string) option
  val collect_formatters :
    Buffer.t -> Format.formatter list -> (unit -> 'a) -> 'a
  val discard_formatters : Format.formatter list -> (unit -> 'a) -> 'a
  val prompt_continue : LTerm_text.t React.signal Pervasives.ref
  val prompt_comment : LTerm_text.t React.signal Pervasives.ref
  val smart_accept : bool Pervasives.ref
  val new_prompt_hooks : (unit -> unit) Lwt_sequence.t
  val at_new_prompt : (unit -> unit) -> unit
end