sig
  type category
  type warn_category
  val verbose_atleast : int -> bool
  val debug_atleast : int -> bool
  val printf :
    ?level:int ->
    ?dkey:category ->
    ?current:bool ->
    ?source:Filepath.position ->
    ?append:(Format.formatter -> unit) ->
    ?header:(Format.formatter -> unit) ->
    ('a, Format.formatter, unit) format -> 'a
  val result : ?level:int -> ?dkey:category -> 'Log.pretty_printer
  val feedback :
    ?ontty:Log.ontty -> ?level:int -> ?dkey:category -> 'Log.pretty_printer
  val debug : ?level:int -> ?dkey:category -> 'Log.pretty_printer
  val warning : ?wkey:warn_category -> 'Log.pretty_printer
  val error : 'Log.pretty_printer
  val abort : ('a, 'b) Log.pretty_aborter
  val failure : 'Log.pretty_printer
  val fatal : ('a, 'b) Log.pretty_aborter
  val verify : bool -> ('a, bool) Log.pretty_aborter
  val not_yet_implemented : ('a, Format.formatter, unit, 'b) format4 -> 'a
  val deprecated : string -> now:string -> ('-> 'b) -> '-> 'b
  val with_result : (Log.event option -> 'b) -> ('a, 'b) Log.pretty_aborter
  val with_warning : (Log.event option -> 'b) -> ('a, 'b) Log.pretty_aborter
  val with_error : (Log.event option -> 'b) -> ('a, 'b) Log.pretty_aborter
  val with_failure : (Log.event option -> 'b) -> ('a, 'b) Log.pretty_aborter
  val log :
    ?kind:Log.kind -> ?verbose:int -> ?debug:int -> 'Log.pretty_printer
  val logwith :
    (Log.event option -> 'b) ->
    ?wkey:warn_category ->
    ?emitwith:(Log.event -> unit) ->
    ?once:bool -> ('a, 'b) Log.pretty_aborter
  val register : Log.kind -> (Log.event -> unit) -> unit
  val register_tag_handlers : (string -> string) * (string -> string) -> unit
  val register_category : string -> category
  val pp_category : Format.formatter -> category -> unit
  val dkey_name : category -> string
  val is_registered_category : string -> bool
  val get_category : string -> category option
  val get_all_categories : unit -> category list
  val add_debug_keys : category -> unit
  val del_debug_keys : category -> unit
  val get_debug_keys : unit -> category list
  val is_debug_key_enabled : category -> bool
  val get_debug_keyset : unit -> category list
  val register_warn_category : string -> warn_category
  val is_warn_category : string -> bool
  val pp_warn_category : Format.formatter -> warn_category -> unit
  val pp_all_warn_categories_status : unit -> unit
  val wkey_name : warn_category -> string
  val get_warn_category : string -> warn_category option
  val get_all_warn_categories : unit -> warn_category list
  val get_all_warn_categories_status :
    unit -> (warn_category * Log.warn_status) list
  val set_warn_status : warn_category -> Log.warn_status -> unit
  val get_warn_status : warn_category -> Log.warn_status
  val add_group : ?memo:bool -> string -> Cmdline.Group.t
  module Help : Parameter_sig.Bool
  module Verbose : Parameter_sig.Int
  module Debug : Parameter_sig.Int
  module Share : Parameter_sig.Specific_dir
  module Session : Parameter_sig.Specific_dir
  module Config : Parameter_sig.Specific_dir
  val help : Cmdline.Group.t
  val messages : Cmdline.Group.t
  val add_plugin_output_aliases : string list -> unit
  module Print : Parameter_sig.Bool
end