sig
  val pp_varname : Format.formatter -> string -> unit
  val pp_location : Format.formatter -> Cil_types.location -> unit
  val pp_constant : Format.formatter -> Cil_types.constant -> unit
  val pp_storage : Format.formatter -> Cil_types.storage -> unit
  val pp_ikind : Format.formatter -> Cil_types.ikind -> unit
  val pp_fkind : Format.formatter -> Cil_types.fkind -> unit
  val pp_typ : Format.formatter -> Cil_types.typ -> unit
  val pp_exp : Format.formatter -> Cil_types.exp -> unit
  val pp_vdecl : Format.formatter -> Cil_types.varinfo -> unit
  val pp_varinfo : Format.formatter -> Cil_types.varinfo -> unit
  val pp_lval : Format.formatter -> Cil_types.lval -> unit
  val pp_field : Format.formatter -> Cil_types.fieldinfo -> unit
  val pp_offset : Format.formatter -> Cil_types.offset -> unit
  val pp_init : Format.formatter -> Cil_types.init -> unit
  val pp_binop : Format.formatter -> Cil_types.binop -> unit
  val pp_unop : Format.formatter -> Cil_types.unop -> unit
  val pp_attribute : Format.formatter -> Cil_types.attribute -> unit
  val pp_attrparam : Format.formatter -> Cil_types.attrparam -> unit
  val pp_attributes : Format.formatter -> Cil_types.attributes -> unit
  val pp_instr : Format.formatter -> Cil_types.instr -> unit
  val pp_label : Format.formatter -> Cil_types.label -> unit
  val pp_stmt : Format.formatter -> Cil_types.stmt -> unit
  val pp_block : Format.formatter -> Cil_types.block -> unit
  val pp_global : Format.formatter -> Cil_types.global -> unit
  val pp_file : Format.formatter -> Cil_types.file -> unit
  val pp_compinfo : Format.formatter -> Cil_types.compinfo -> unit
  val pp_logic_type_info :
    Format.formatter -> Cil_types.logic_type_info -> unit
  val pp_logic_ctor_info :
    Format.formatter -> Cil_types.logic_ctor_info -> unit
  val pp_initinfo : Format.formatter -> Cil_types.initinfo -> unit
  val pp_logic_info : Format.formatter -> Cil_types.logic_info -> unit
  val pp_logic_constant :
    Format.formatter -> Cil_types.logic_constant -> unit
  val pp_fundec : Format.formatter -> Cil_types.fundec -> unit
  val pp_relation : Format.formatter -> Cil_types.relation -> unit
  val pp_model_info : Format.formatter -> Cil_types.model_info -> unit
  val pp_term_lval : Format.formatter -> Cil_types.term_lval -> unit
  val pp_term_lhost : Format.formatter -> Cil_types.term_lhost -> unit
  val pp_logic_var : Format.formatter -> Cil_types.logic_var -> unit
  val pp_logic_type : Format.formatter -> Cil_types.logic_type -> unit
  val pp_identified_term :
    Format.formatter -> Cil_types.identified_term -> unit
  val pp_term : Format.formatter -> Cil_types.term -> unit
  val pp_model_field : Format.formatter -> Cil_types.model_info -> unit
  val pp_term_offset : Format.formatter -> Cil_types.term_offset -> unit
  val pp_logic_builtin_label :
    Format.formatter -> Cil_types.logic_builtin_label -> unit
  val pp_logic_label : Format.formatter -> Cil_types.logic_label -> unit
  val pp_builtin_logic_info :
    Format.formatter -> Cil_types.builtin_logic_info -> unit
  val pp_extended : Format.formatter -> Cil_types.acsl_extension -> unit
  val pp_short_extended :
    Format.formatter -> Cil_types.acsl_extension -> unit
  val pp_predicate_node :
    Format.formatter -> Cil_types.predicate_node -> unit
  val pp_predicate : Format.formatter -> Cil_types.predicate -> unit
  val pp_toplevel_predicate :
    Format.formatter -> Cil_types.toplevel_predicate -> unit
  val pp_identified_predicate :
    Format.formatter -> Cil_types.identified_predicate -> unit
  val pp_code_annotation :
    Format.formatter -> Cil_types.code_annotation -> unit
  val pp_funspec : Format.formatter -> Cil_types.funspec -> unit
  val pp_behavior : Format.formatter -> Cil_types.funbehavior -> unit
  val pp_global_annotation :
    Format.formatter -> Cil_types.global_annotation -> unit
  val pp_decreases : Format.formatter -> Cil_types.variant -> unit
  val pp_variant : Format.formatter -> Cil_types.variant -> unit
  val pp_from : Format.formatter -> Cil_types.from -> unit
  val pp_assigns : Format.formatter -> Cil_types.assigns -> unit
  val pp_allocation : Format.formatter -> Cil_types.allocation -> unit
  val pp_loop_from : Format.formatter -> Cil_types.from -> unit
  val pp_loop_assigns : Format.formatter -> Cil_types.assigns -> unit
  val pp_loop_allocation : Format.formatter -> Cil_types.allocation -> unit
  val pp_post_cond :
    Format.formatter ->
    Cil_types.termination_kind * Cil_types.identified_predicate -> unit
  val pp_full_assigns :
    string -> Format.formatter -> Cil_types.assigns -> unit
  val without_annot :
    (Format.formatter -> '-> unit) -> Format.formatter -> '-> unit
  val force_brace :
    (Format.formatter -> '-> unit) -> Format.formatter -> '-> unit
  class extensible_printer : unit -> extensible_printer_type
  module type PrinterClass = sig class printer : extensible_printer_type end
  module type PrinterExtension = functor (X : PrinterClass-> PrinterClass
  val update_printer : (module Printer_api.S.PrinterExtension-> unit
  val current_printer : unit -> (module Printer_api.S.PrinterClass)
  val set_printer : (module Printer_api.S.PrinterClass-> unit
end