sig
  val default_path : unit -> string list
  exception Invalid_Name of string
  val register : string -> 'Type.t -> journalize:bool -> '-> 'a
  val get : string -> 'Type.t -> 'a
  val apply : string -> 'Type.t -> 'a
  val add_path : string -> unit
  val load_module : string -> unit
  val load_script : string -> unit
  module Main :
    sig val extend : (unit -> unit) -> unit val apply : unit -> unit end
end