sig
  type variadic_class =
      Unknown
    | Defined
    | Misc
    | Overload of Va_types.overload
    | Aggregator of Va_types.aggregator
    | FormatFun of Va_types.format_fun
  and overload = (Cil_types.typ list * Cil_types.varinfo) list
  and aggregator = {
    a_target : Cil_types.varinfo;
    a_pos : int;
    a_type : Va_types.aggregator_type;
    a_param : string * Cil_types.typ;
  }
  and aggregator_type = EndedByNull
  and format_fun = {
    f_kind : Format_types.format_kind;
    f_buffer : Va_types.buffer;
    f_format_pos : int;
  }
  and buffer =
      StdIO
    | Arg of int * int option
    | Stream of int
    | File of int
    | Syslog
  type variadic_function = {
    vf_decl : Cil_types.varinfo;
    vf_original_type : Cil_types.typ;
    vf_class : Va_types.variadic_class;
    mutable vf_specialization_count : int;
  }
end