sig
  val main : unit -> unit
  val start : unit -> Thread.t
  val thread_main : unit -> unit
  val reset : unit -> unit
  val async : ('-> unit) -> '-> unit
  val sync : ('-> 'b) -> '-> 'b
  val gui_safe : unit -> bool
end