sig   type stage = Early | Extending | Extended | Exiting | Loading | Configuring   val run_after_early_stage : (unit -> unit) -> unit   val run_during_extending_stage : (unit -> unit) -> unit   val run_after_extended_stage : (unit -> unit) -> unit   type exit   val nop : Cmdline.exit   exception Exit   val run_after_exiting_stage : (unit -> Cmdline.exit) -> unit   val run_after_loading_stage : (unit -> unit) -> unit   val is_going_to_load : unit -> unit   val run_after_configuring_stage : (unit -> unit) -> unit   val run_after_setting_files : (string list -> unit) -> unit   val at_normal_exit : (unit -> unit) -> unit   val at_error_exit : (exn -> unit) -> unit   module Group :     sig       type t       val default : Cmdline.Group.t       val name : Cmdline.Group.t -> string       val add :         ?memo:bool -> plugin:string -> string -> Cmdline.Group.t * bool     end   val protect : exn -> string   val catch_at_toplevel : exn -> bool   val catch_toplevel_run :     f:(unit -> unit) ->     at_normal_exit:(unit -> unit) -> on_error:(exn -> unit) -> unit   val run_normal_exit_hook : unit -> unit   val run_error_exit_hook : exn -> unit   val error_occurred : exn -> unit   val bail_out : unit -> 'a   type on_from_name = { on_from_name : 'a. string -> (unit -> 'a) -> 'a; }   val parse_and_boot :     on_from_name:Cmdline.on_from_name ->     get_toplevel:(unit -> (unit -> unit) -> unit) ->     play_analysis:(unit -> unit) -> unit   val nb_given_options : unit -> int   val use_cmdline_files : (string list -> unit) -> unit   val help : unit -> Cmdline.exit   val list_plugins : unit -> Cmdline.exit   val plugin_help : string -> Cmdline.exit   val print_option_help :     Format.formatter ->     plugin:string -> group:Cmdline.Group.t -> string -> unit   val add_plugin : ?short:string -> string -> help:string -> unit   type option_setting =       Unit of (unit -> unit)     | Int of (int -> unit)     | String of (string -> unit)     | String_list of (string list -> unit)   val add_option :     string ->     plugin:string ->     group:Cmdline.Group.t ->     Cmdline.stage ->     ?argname:string ->     help:string ->     visible:bool ->     ext_help:(unit, Format.formatter, unit) Pervasives.format ->     Cmdline.option_setting -> unit   val add_option_without_action :     string ->     plugin:string ->     group:Cmdline.Group.t ->     ?argname:string ->     help:string ->     visible:bool ->     ext_help:(unit, Format.formatter, unit) Pervasives.format -> unit -> unit   val add_aliases :     string ->     plugin:string ->     group:Cmdline.Group.t -> Cmdline.stage -> string list -> unit   val replace_option_setting :     string ->     plugin:string -> group:Cmdline.Group.t -> Cmdline.option_setting -> unit   module Kernel_log : Log.Messages   module type Level =     sig       val value_if_set : int option Pervasives.ref       val get : unit -> int       val set : int -> unit     end   module Debug_level : Level   module Verbose_level : Level   module Kernel_debug_level : Level   module Kernel_verbose_level : Level   val kernel_debug_atleast_ref : (int -> bool) Pervasives.ref   val kernel_verbose_atleast_ref : (int -> bool) Pervasives.ref   val journal_enable : bool   val journal_isset : bool   val use_obj : bool   val use_type : bool   val quiet : bool   val deterministic : bool   val last_project_created_by_copy : (unit -> string option) Pervasives.ref   val load_all_plugins : (unit -> unit) Pervasives.ref   val add_loading_failures : string -> unit end