sig
  type cond =
      And of Cabscond.cond * Cabscond.cond
    | Or of Cabscond.cond * Cabscond.cond
    | Not of Cabscond.cond
    | Atom of Cil_types.exp
    | Blob
  type kind = IF | FOR | WHILE | DOWHILE
  type info = {
    id : int;
    kind : Cabscond.kind;
    file : string;
    line : int;
    cond : Cabscond.cond;
  }
  val active : bool Pervasives.ref
  val push_condition :
    Cabscond.kind -> Cabs.cabsloc -> Cabs.expression -> bool
  val pop_condition : unit -> unit
  val bind : Cabs.expression -> Cil_types.exp -> unit
  val lookup : Cil_types.exp -> Cabscond.info option
  val pp_kind : Format.formatter -> Cabscond.kind -> unit
  val pp_where :
    Format.formatter -> string * Cil_types.exp * Cabscond.cond -> unit
  val pp_comment : Format.formatter -> Cil_types.stmt -> unit
end