sig
  val version : string
  type loc = { line : int; file : string; }
  val lu : Cprint.loc
  val cabslu : Cabs.cabsloc
  val curLoc : Cabs.cabsloc Pervasives.ref
  val msvcMode : bool Pervasives.ref
  val printLn : bool Pervasives.ref
  val printLnComment : bool Pervasives.ref
  val printCounters : bool Pervasives.ref
  val printComments : bool Pervasives.ref
  val out : Pervasives.out_channel Pervasives.ref
  val width : int Pervasives.ref
  val tab : int Pervasives.ref
  val max_indent : int Pervasives.ref
  val line : string Pervasives.ref
  val line_len : int Pervasives.ref
  val current : string Pervasives.ref
  val current_len : int Pervasives.ref
  val spaces : int Pervasives.ref
  val follow : int Pervasives.ref
  val roll : int Pervasives.ref
  val new_line : unit -> unit
  val space : unit -> unit
  val indent : unit -> unit
  val unindent : unit -> unit
  val force_new_line : unit -> unit
  val flush : unit -> unit
  val commit : unit -> unit
  val print_unescaped_string : string -> unit
  val print_list : (unit -> unit) -> ('-> 'b) -> 'a list -> unit
  val print_commas : bool -> ('-> 'b) -> 'a list -> unit
  val print_string : string -> unit
  val print_wstring : Escape.wstring -> unit
  val print_specifiers : Cabs.specifier -> unit
  val print_type_spec : Cabs.typeSpecifier -> unit
  val print_struct_name_attr :
    string -> string -> Cabs.attribute list -> unit
  val print_decl : string -> Cabs.decl_type -> unit
  val print_fields : Cabs.field_group list -> unit
  val print_enum_items : Cabs.enum_item list -> unit
  val print_onlytype : Cabs.specifier * Cabs.decl_type -> unit
  val print_name : Cabs.name -> unit
  val print_init_name : Cabs.init_name -> unit
  val print_name_group : Cabs.name_group -> unit
  val print_field_group : Cabs.field_group -> unit
  val print_field : Cabs.name * Cabs.expression option -> unit
  val print_init_name_group : Cabs.init_name_group -> unit
  val print_single_name : Cabs.single_name -> unit
  val print_params : Cabs.single_name list -> bool -> unit
  val print_old_params : string list -> bool -> unit
  val get_operator : Cabs.expression -> string * int
  val print_comma_exps : Cabs.expression list -> unit
  val print_init_expression : Cabs.init_expression -> unit
  val print_expression : Cabs.expression -> unit
  val print_expression_level : int -> Cabs.expression -> unit
  val print_statement : Cabs.statement -> unit
  val print_block : Cabs.block -> unit
  val print_substatement : Cabs.statement -> unit
  val print_attribute : Cabs.attribute -> unit
  val print_attributes : Cabs.attribute list -> unit
  val print_defs : (bool * Cabs.definition) list -> unit
  val print_def : Cabs.definition -> unit
  val comprint : string -> unit
  val comstring : string -> string
  val printFile : Pervasives.out_channel -> Cabs.file -> unit
  val set_tab : int -> unit
  val set_width : int -> unit
end