sig
  val version : string
  type loc = { line : int; file : string; }
  val lu : Flx_cil_cprint.loc
  val cabslu : Flx_cil_cabs.cabsloc
  val curLoc : Flx_cil_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 print_tab : int -> unit
  val flush : '-> unit
  val commit : '-> unit
  val addline : unit -> unit
  val new_line : '-> unit
  val force_new_line : '-> unit
  val indent : '-> unit
  val indentline : '-> unit
  val unindent : '-> unit
  val space : '-> unit
  val print : string -> unit
  val print_unescaped_string : string -> unit
  val setLoc : Flx_cil_cabs.cabsloc -> 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 : Flx_cil_escape.wstring -> unit
  val print_specifiers : Flx_cil_cabs.specifier -> unit
  val print_type_spec : Flx_cil_cabs.typeSpecifier -> unit
  val print_struct_name_attr :
    string -> string -> Flx_cil_cabs.attribute list -> unit
  val print_decl : string -> Flx_cil_cabs.decl_type -> unit
  val print_fields : Flx_cil_cabs.field_group list -> unit
  val print_enum_items : Flx_cil_cabs.enum_item list -> unit
  val print_onlytype :
    Flx_cil_cabs.specifier * Flx_cil_cabs.decl_type -> unit
  val print_name : Flx_cil_cabs.name -> unit
  val print_init_name : Flx_cil_cabs.init_name -> unit
  val print_name_group : Flx_cil_cabs.name_group -> unit
  val print_field_group : Flx_cil_cabs.field_group -> unit
  val print_field :
    Flx_cil_cabs.name * Flx_cil_cabs.expression option -> unit
  val print_init_name_group : Flx_cil_cabs.init_name_group -> unit
  val print_single_name : Flx_cil_cabs.single_name -> unit
  val print_params : Flx_cil_cabs.single_name list -> bool -> unit
  val print_old_params : string list -> bool -> unit
  val get_operator : Flx_cil_cabs.expression -> string * int
  val print_comma_exps : Flx_cil_cabs.expression list -> unit
  val print_init_expression : Flx_cil_cabs.init_expression -> unit
  val print_expression : Flx_cil_cabs.expression -> unit
  val print_expression_level : int -> Flx_cil_cabs.expression -> unit
  val print_statement : Flx_cil_cabs.statement -> unit
  val print_block : Flx_cil_cabs.block -> unit
  val print_substatement : Flx_cil_cabs.statement -> unit
  val print_attribute : Flx_cil_cabs.attribute -> unit
  val print_attributes : Flx_cil_cabs.attribute list -> unit
  val print_defs : Flx_cil_cabs.definition list -> unit
  val print_def : Flx_cil_cabs.definition -> unit
  val comprint : string -> unit
  val comstring : string -> string
  val printFile : Pervasives.out_channel -> Flx_cil_cabs.file -> unit
  val set_tab : int -> unit
  val set_width : int -> unit
end