sig
  type t
  val create :
    LTerm.t ->
    ?save_state:bool ->
    (LTerm_ui.t -> LTerm_draw.matrix -> unit) -> LTerm_ui.t Lwt.t
  val quit : LTerm_ui.t -> unit Lwt.t
  val size : LTerm_ui.t -> LTerm_geom.size
  val draw : LTerm_ui.t -> unit
  val cursor_visible : LTerm_ui.t -> bool
  val set_cursor_visible : LTerm_ui.t -> bool -> unit
  val cursor_position : LTerm_ui.t -> LTerm_geom.coord
  val set_cursor_position : LTerm_ui.t -> LTerm_geom.coord -> unit
  val wait : LTerm_ui.t -> LTerm_event.t Lwt.t
end