sig
  val get_code_annotation :
    Db_types.rooted_code_annotation Db_types.before_after ->
    Cil_types.code_annotation
  val add :
    Cil_types.stmt ->
    State.t list ->
    Db_types.rooted_code_annotation Db_types.before_after -> unit
  val add_assert :
    Cil_types.stmt ->
    State.t list ->
    before:bool -> Cil_types.predicate Cil_types.named -> unit
  val add_alarm :
    Cil_types.stmt ->
    State.t list ->
    before:bool -> Alarms.t -> Cil_types.predicate Cil_types.named -> unit
  val replace :
    reset:bool ->
    Cil_types.stmt ->
    State.t list ->
    Db_types.rooted_code_annotation Db_types.before_after -> unit
  val reset_stmt : reset:bool -> Cil_types.stmt -> unit
  val get :
    ?who:State.t list ->
    Cil_types.stmt ->
    State.t ->
    (Db_types.rooted_code_annotation Db_types.before_after * State.t) list
  val get_annotations :
    ?who:State.t list ->
    Cil_types.stmt ->
    State.t -> Db_types.rooted_code_annotation Db_types.before_after list
  val get_all :
    ?who:State.t list ->
    Cil_types.stmt ->
    (Db_types.rooted_code_annotation Db_types.before_after * State.t) list
  val get_all_annotations :
    ?who:State.t list ->
    Cil_types.stmt ->
    Db_types.rooted_code_annotation Db_types.before_after list
  val get_by_state :
    Cil_types.stmt ->
    (State.t * Db_types.rooted_code_annotation Db_types.before_after list)
    list
  val get_filter :
    (Cil_types.code_annotation -> bool) ->
    Cil_types.stmt ->
    Db_types.rooted_code_annotation Db_types.before_after list
  val iter_stmt :
    (State.t option ->
     Db_types.rooted_code_annotation Db_types.before_after * State.t -> unit) ->
    Cil_types.stmt -> unit
  val single_iter_stmt :
    (Db_types.rooted_code_annotation Db_types.before_after -> unit) ->
    Cil_types.stmt -> unit
  val fold_stmt :
    (State.t option ->
     Db_types.rooted_code_annotation Db_types.before_after * State.t ->
     '-> 'a) ->
    Cil_types.stmt -> '-> 'a
  val single_fold_stmt :
    (Db_types.rooted_code_annotation Db_types.before_after -> '-> 'a) ->
    Cil_types.stmt -> '-> 'a
  val iter :
    (Cil_types.stmt ->
     State.t option ->
     Db_types.rooted_code_annotation Db_types.before_after * State.t -> unit) ->
    unit
  val fold :
    (Cil_types.stmt ->
     State.t option ->
     Db_types.rooted_code_annotation Db_types.before_after * State.t ->
     '-> 'a) ->
    '-> 'a
  val filter :
    reset:bool ->
    (Cil_types.stmt ->
     State.t option ->
     Db_types.rooted_code_annotation Db_types.before_after -> bool) ->
    Cil_types.stmt -> unit
  val self : State.t
end