sig
  module Output :
    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 :
        ?current:bool ->
        ?source:Filepath.position ->
        ('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 dkey : category
    end
  type t = private {
    pid : int;
    mutable name : string;
    mutable unique_name : string;
  }
  type project = Project_skeleton.t
  val dummy : Project_skeleton.t
  module Make_setter :
    functor (X : sig val mem : string -> bool end->
      sig
        val make_unique_name : string -> string
        val make : string -> Project_skeleton.t
        val set_name : Project_skeleton.t -> string -> unit
      end
end