sig
  type t_in = Cil_types.code_annotation
  module Pscope :
    sig
      val self : State.t
      val name : string
      val mark_as_computed : ?project:Project.t -> unit -> unit
      val is_computed : ?project:Project.t -> unit -> bool
      module Datatype : Datatype.S
      val add_hook_on_update : (Datatype.t -> unit) -> unit
      val howto_marshal : (Datatype.t -> 'a) -> ('-> Datatype.t) -> unit
      type data = Cil_datatype.Stmt.Hptset.t
      val get : unit -> data
      val clear : unit -> unit
      val set : data -> unit
    end
  module Pscope_warn :
    sig
      type data_in_list = Cil_datatype.Code_annotation.t
      val self : State.t
      val name : string
      val mark_as_computed : ?project:Project.t -> unit -> unit
      val is_computed : ?project:Project.t -> unit -> bool
      module Datatype : Datatype.S
      val add_hook_on_update : (Datatype.t -> unit) -> unit
      val howto_marshal : (Datatype.t -> 'a) -> ('-> Datatype.t) -> unit
      type data = Cil_datatype.Code_annotation.t list
      val set : data -> unit
      val get : unit -> data
      val clear : unit -> unit
      val add : data_in_list -> unit
      val iter : (data_in_list -> unit) -> unit
      val fold_left : ('-> data_in_list -> 'a) -> '-> 'a
    end
  val clear : unit -> unit
  val help : string
  val get_info : '-> string
  val compute :
    Cil_types.kernel_function ->
    Cil_types.stmt -> Cil_types.code_annotation -> string
  val tag_stmt :
    Cil_datatype.Stmt.Hptset.elt -> string * [> `BACKGROUND of string ] list
  val tag_annot :
    Cil_types.code_annotation -> string * [> `BACKGROUND of string ] list
end