sig
  type t
  val create : unit -> Context.t
  val clear : Context.t -> unit
  val get_graph : Context.t -> Dive_graph.t
  val find_node : Context.t -> int -> Dive_types.node
  val get_max_dep_fetch_count : Context.t -> int
  val get_roots : Context.t -> Dive_types.node list
  val set_unique_root : Context.t -> Dive_types.node -> unit
  val add_root : Context.t -> Dive_types.node -> unit
  val remove_root : Context.t -> Dive_types.node -> unit
  val is_folded : Context.t -> Cil_types.varinfo -> bool
  val unfold : Context.t -> Cil_types.varinfo -> unit
  val fold : Context.t -> Cil_types.varinfo -> unit
  val is_hidden : Context.t -> Dive_types.node_kind -> bool
  val hide : Context.t -> Cil_types.varinfo -> unit
  val show : Context.t -> Cil_types.varinfo -> unit
  val add_node :
    Context.t ->
    node_kind:Dive_types.node_kind ->
    node_locality:Dive_types.node_locality -> Dive_types.node
  val remove_node : Context.t -> Dive_types.node -> unit
  val update_diff : Context.t -> Dive_types.node -> unit
  val take_last_diff : Context.t -> Dive_types.graph_diff
end