sig
  val verbose_atleast : int -> bool
  val debug_atleast : int -> bool
  val printf :
    ?level:int ->
    ?dkey:Log.category ->
    ?current:bool ->
    ?source:Lexing.position ->
    ?append:(Format.formatter -> unit) ->
    ?header:(Format.formatter -> unit) ->
    ?prefix:string ->
    ?suffix:string -> ('a, Format.formatter, unit) format -> 'a
  val result : ?level:int -> ?dkey:Log.category -> 'Log.pretty_printer
  val feedback : ?level:int -> ?dkey:Log.category -> 'Log.pretty_printer
  val debug : ?level:int -> ?dkey:Log.category -> 'Log.pretty_printer
  val debug0 : ?level:int -> ?dkey:Log.category -> unit Log.pretty_printer
  val debug1 :
    ?level:int -> ?dkey:Log.category -> ('-> unit) Log.pretty_printer
  val debug2 :
    ?level:int -> ?dkey:Log.category -> ('-> '-> unit) Log.pretty_printer
  val debug3 :
    ?level:int ->
    ?dkey:Log.category -> ('-> '-> '-> unit) Log.pretty_printer
  val debug4 :
    ?level:int ->
    ?dkey:Log.category -> ('-> '-> '-> '-> unit) Log.pretty_printer
  val debug5 :
    ?level:int ->
    ?dkey:Log.category ->
    ('-> '-> '-> '-> '-> unit) Log.pretty_printer
  val debug6 :
    ?level:int ->
    ?dkey:Log.category ->
    ('-> '-> '-> '-> '-> '-> unit) Log.pretty_printer
  val debug7 :
    ?level:int ->
    ?dkey:Log.category ->
    ('-> '-> '-> '-> '-> '-> '-> unit) Log.pretty_printer
  val debug8 :
    ?level:int ->
    ?dkey:Log.category ->
    ('-> '-> '-> '-> '-> '-> '-> '-> unit) Log.pretty_printer
  val warning : '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 -> 'b) -> ('a, 'b) Log.pretty_aborter
  val with_warning : (Log.event -> 'b) -> ('a, 'b) Log.pretty_aborter
  val with_error : (Log.event -> 'b) -> ('a, 'b) Log.pretty_aborter
  val with_failure : (Log.event -> 'b) -> ('a, 'b) Log.pretty_aborter
  val log :
    ?kind:Log.kind -> ?verbose:int -> ?debug:int -> 'Log.pretty_printer
  val with_log :
    (Log.event -> 'b) -> ?kind:Log.kind -> ('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 -> Log.category
  val get_category : string -> Log.Category_set.t
  val get_all_categories : unit -> Log.Category_set.t
  val add_debug_keys : Log.Category_set.t -> unit
  val del_debug_keys : Log.Category_set.t -> unit
  val get_debug_keys : unit -> Log.Category_set.t
  val is_debug_key_enabled : Log.category -> bool
  val get_debug_keyset : unit -> Log.category list
  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 Debug_category : Parameter_sig.String_set
  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
  module PrintVersion : Parameter_sig.Bool
  module PrintShare : Parameter_sig.Bool
  module PrintLib : Parameter_sig.Bool
  module PrintPluginPath : Parameter_sig.Bool
  module GeneralVerbose : Parameter_sig.Int
  module GeneralDebug : Parameter_sig.Int
  module Quiet : Parameter_sig.Bool
  module Unicode :
    sig
      type t = bool
      val set : t -> unit
      val add_set_hook : (t -> t -> unit) -> unit
      val add_update_hook : (t -> t -> unit) -> unit
      val get : unit -> t
      val clear : unit -> unit
      val is_default : unit -> bool
      val option_name : string
      val print_help : Format.formatter -> unit
      val self : State.t
      val name : string
      val mark_as_computed : ?project:Project.t -> unit -> unit
      val is_computed : ?project:Project.t -> unit -> bool
      module Datatype : Datatype.S
      val add_hook_on_update : (Datatype.t -> unit) -> unit
      val howto_marshal : (Datatype.t -> 'a) -> ('-> Datatype.t) -> unit
      val equal : t -> t -> bool
      val add_aliases : string list -> unit
      val is_set : unit -> bool
      val unsafe_set : t -> unit
      val parameter : Typed_parameter.t
      val on : unit -> unit
      val off : unit -> unit
      val without_unicode : ('-> 'b) -> '-> 'b
    end
  module UseUnicode : Parameter_sig.Bool
  module Time : Parameter_sig.String
  module Collect_messages : Parameter_sig.Bool
  module PrintCode : Parameter_sig.Bool
  module PrintComments : Parameter_sig.Bool
  module CodeOutput :
    sig
      type t = string
      val set : t -> unit
      val add_set_hook : (t -> t -> unit) -> unit
      val add_update_hook : (t -> t -> unit) -> unit
      val get : unit -> t
      val clear : unit -> unit
      val is_default : unit -> bool
      val option_name : string
      val print_help : Format.formatter -> unit
      val self : State.t
      val name : string
      val mark_as_computed : ?project:Project.t -> unit -> unit
      val is_computed : ?project:Project.t -> unit -> bool
      module Datatype : Datatype.S
      val add_hook_on_update : (Datatype.t -> unit) -> unit
      val howto_marshal : (Datatype.t -> 'a) -> ('-> Datatype.t) -> unit
      val equal : t -> t -> bool
      val add_aliases : string list -> unit
      val is_set : unit -> bool
      val unsafe_set : t -> unit
      val parameter : Typed_parameter.t
      val set_possible_values : string list -> unit
      val get_possible_values : unit -> string list
      val get_function_name : unit -> string
      val get_plain_string : unit -> string
      val output : (Format.formatter -> unit) -> unit
    end
  module SymbolicPath : Parameter_sig.String_set
  module FloatNormal : Parameter_sig.Bool
  module FloatRelative : Parameter_sig.Bool
  module FloatHex : Parameter_sig.Bool
  module BigIntsHex : Parameter_sig.Int
  module SaveState : Parameter_sig.String
  module LoadState : Parameter_sig.String
  module AddPath : Parameter_sig.String_list
  module LoadModule : Parameter_sig.String_set
  module LoadScript : Parameter_sig.String_set
  module Dynlink : Parameter_sig.Bool
  module Journal :
    sig
      module Enable : Parameter_sig.Bool
      module Name : Parameter_sig.String
    end
  module Session_dir : Parameter_sig.String
  module Config_dir : Parameter_sig.String
  module UnrollingLevel : Parameter_sig.Int
  module UnrollingForce : Parameter_sig.Bool
  module Machdep : Parameter_sig.String
  module Enums : Parameter_sig.String
  module CppCommand : Parameter_sig.String
  module CppExtraArgs : Parameter_sig.String_list
  module CppGnuLike : Parameter_sig.Bool
  module FramaCStdLib : Parameter_sig.Bool
  module ReadAnnot : Parameter_sig.Bool
  module PreprocessAnnot : Parameter_sig.Bool
  module ContinueOnAnnotError : Parameter_sig.Bool
  module SimplifyCfg : Parameter_sig.Bool
  module KeepSwitch : Parameter_sig.Bool
  module Keep_unused_specified_functions : Parameter_sig.Bool
  module SimplifyTrivialLoops : Parameter_sig.Bool
  module Constfold : Parameter_sig.Bool
  module InitializedPaddingLocals : Parameter_sig.Bool
  module AggressiveMerging : Parameter_sig.Bool
  module RemoveExn : Parameter_sig.Bool
  module Files : Parameter_sig.String_list
  module Orig_name : Parameter_sig.Bool
  val normalization_parameters : Typed_parameter.t list
  module WarnDecimalFloat : Parameter_sig.String
  module WarnUndeclared : Parameter_sig.Bool
  module AllowDuplication : Parameter_sig.Bool
  module DoCollapseCallCast : Parameter_sig.Bool
  module ForceRLArgEval : Parameter_sig.Bool
  module MainFunction :
    sig
      type t = string
      val set : t -> unit
      val add_set_hook : (t -> t -> unit) -> unit
      val add_update_hook : (t -> t -> unit) -> unit
      val get : unit -> t
      val clear : unit -> unit
      val is_default : unit -> bool
      val option_name : string
      val print_help : Format.formatter -> unit
      val self : State.t
      val name : string
      val mark_as_computed : ?project:Project.t -> unit -> unit
      val is_computed : ?project:Project.t -> unit -> bool
      module Datatype : Datatype.S
      val add_hook_on_update : (Datatype.t -> unit) -> unit
      val howto_marshal : (Datatype.t -> 'a) -> ('-> Datatype.t) -> unit
      val equal : t -> t -> bool
      val add_aliases : string list -> unit
      val is_set : unit -> bool
      val parameter : Typed_parameter.t
      val set_possible_values : string list -> unit
      val get_possible_values : unit -> string list
      val get_function_name : unit -> string
      val get_plain_string : unit -> string
      val unsafe_set : t -> unit
    end
  module LibEntry :
    sig
      type t = bool
      val set : t -> unit
      val add_set_hook : (t -> t -> unit) -> unit
      val add_update_hook : (t -> t -> unit) -> unit
      val get : unit -> t
      val clear : unit -> unit
      val is_default : unit -> bool
      val option_name : string
      val print_help : Format.formatter -> unit
      val self : State.t
      val name : string
      val mark_as_computed : ?project:Project.t -> unit -> unit
      val is_computed : ?project:Project.t -> unit -> bool
      module Datatype : Datatype.S
      val add_hook_on_update : (Datatype.t -> unit) -> unit
      val howto_marshal : (Datatype.t -> 'a) -> ('-> Datatype.t) -> unit
      val equal : t -> t -> bool
      val add_aliases : string list -> unit
      val is_set : unit -> bool
      val parameter : Typed_parameter.t
      val on : unit -> unit
      val off : unit -> unit
      val unsafe_set : t -> unit
    end
  module ConstReadonly : Parameter_sig.Bool
  module UnspecifiedAccess : Parameter_sig.Bool
  module SafeArrays : Parameter_sig.Bool
  module SignedOverflow : Parameter_sig.Bool
  module UnsignedOverflow : Parameter_sig.Bool
  module SignedDowncast : Parameter_sig.Bool
  module UnsignedDowncast : Parameter_sig.Bool
  module AbsoluteValidRange : Parameter_sig.String
  module Check : Parameter_sig.Bool
  module Copy : Parameter_sig.Bool
  module TypeCheck : Parameter_sig.Bool
end