sig
  type file =
    File.file =
      NeedCPP of string * string
    | NoCPP of string
    | External of string * string
  type t = file
  val ty : t Type.t
  val name : string
  val descr : t Descr.t
  val packed_descr : Structural_descr.pack
  val reprs : t list
  val equal : t -> t -> bool
  val compare : t -> t -> int
  val hash : t -> int
  val pretty_code : Format.formatter -> t -> unit
  val internal_pretty_code : Type.precedence -> Format.formatter -> t -> unit
  val pretty : Format.formatter -> t -> unit
  val varname : t -> string
  val mem_project : (Project_skeleton.t -> bool) -> t -> bool
  val copy : t -> t
  val new_file_type :
    string -> (string -> Cil_types.file * Cabs.file) -> unit
  val new_machdep : string -> (module Cil.Machdeps-> unit
  type code_transformation_category = File.code_transformation_category
  val register_code_transformation_category :
    string -> code_transformation_category
  val add_code_transformation_before_cleanup :
    ?deps:(module Parameter_sig.S) list ->
    ?before:code_transformation_category list ->
    ?after:code_transformation_category list ->
    code_transformation_category -> (Cil_types.file -> unit) -> unit
  val add_code_transformation_after_cleanup :
    ?deps:(module Parameter_sig.S) list ->
    ?before:code_transformation_category list ->
    ?after:code_transformation_category list ->
    code_transformation_category -> (Cil_types.file -> unit) -> unit
  val must_recompute_cfg : Cil_types.fundec -> unit
  val get_suffixes : unit -> string list
  val get_name : t -> string
  val get_preprocessor_command : unit -> string
  val pre_register : t -> unit
  val get_all : unit -> t list
  val from_filename : ?cpp:string -> string -> t
  class check_file : string -> Visitor.frama_c_visitor
  val prepare_from_c_files : unit -> unit
  val init_from_c_files : t list -> unit
  val init_project_from_cil_file : Project.t -> Cil_types.file -> unit
  val init_project_from_visitor :
    ?reorder:bool -> Project.t -> Visitor.frama_c_visitor -> unit
  val create_project_from_visitor :
    ?reorder:bool ->
    string -> (Project.t -> Visitor.frama_c_visitor) -> Project.t
  val create_rebuilt_project_from_visitor :
    ?reorder:bool ->
    ?preprocess:bool ->
    string -> (Project.t -> Visitor.frama_c_visitor) -> Project.t
  val init_from_cmdline : unit -> unit
  val reorder_ast : unit -> unit
  val reorder_custom_ast : Cil_types.file -> unit
  val pretty_ast : ?prj:Project.t -> ?fmt:Format.formatter -> unit -> unit
end