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 key = Kernel_function.t
  type data = Kernel_function.Map.Make(Cil_datatype.Stmt.Set).t
  val replace : key -> data -> unit
  val add : key -> data -> unit
  val clear : unit -> unit
  val length : unit -> int
  val iter : (key -> data -> unit) -> unit
  val iter_sorted : ?cmp:(key -> key -> int) -> (key -> data -> unit) -> unit
  val fold : (key -> data -> '-> 'a) -> '-> 'a
  val fold_sorted :
    ?cmp:(key -> key -> int) -> (key -> data -> '-> 'a) -> '-> 'a
  val memo : ?change:(data -> data) -> (key -> data) -> key -> data
  val find : key -> data
  val find_all : key -> data list
  val mem : key -> bool
  val remove : key -> unit
end