sig
  val annotate : ?flags:Flags.t -> Cil_types.kernel_function -> unit
  val get_annotations_kf :
    ?flags:Flags.t ->
    Cil_types.kernel_function -> Cil_types.code_annotation list
  val get_annotations_stmt :
    ?flags:Flags.t ->
    Cil_types.kernel_function ->
    Cil_types.stmt -> Cil_types.code_annotation list
  val get_annotations_exp :
    ?flags:Flags.t ->
    Cil_types.kernel_function ->
    Cil_types.stmt -> Cil_types.exp -> Cil_types.code_annotation list
  val get_annotations_lval :
    ?flags:Flags.t ->
    Cil_types.kernel_function ->
    Cil_types.stmt -> Cil_types.lval -> Cil_types.code_annotation list
  type on_alarm =
      Cil_types.kernel_function ->
      Cil_types.stmt -> invalid:bool -> Alarms.alarm -> unit
  type 'a iterator =
      ?flags:Flags.t ->
      Visit.on_alarm -> Kernel_function.t -> Cil_types.stmt -> '-> unit
  val iter_lval : Cil_types.lval Visit.iterator
  val iter_exp : Cil_types.exp Visit.iterator
  val iter_instr : Cil_types.instr Visit.iterator
  val iter_stmt : Cil_types.stmt Visit.iterator
  val status : invalid:bool -> Property_status.emitted_status option
  val register :
    Emitter.t ->
    Cil_types.kernel_function ->
    Cil_types.stmt ->
    invalid:bool -> Alarms.alarm -> Cil_types.code_annotation * bool
end