valadd_node:t->Procname.t->unit(** Add a node to the call graph as defined *)
valcalls_recursively:t->Procname.t->Procname.t->bool(** [calls_recursively g source dest] returns [true] if function [source] recursively calls function [dest] *)
valcreate:unit->t(** Create an empty call graph *)
valextend:t->t->unit(** [extend cg1 gc2] extends [cg1] in place with nodes and edges from [gc2]; undefined nodes become defined if at least one side is. *)
valget_all_children:t->Procname.t->Procname.Set.t(** Return all the children of [n], whether defined or not *)
valget_ancestors:t->Procname.t->Procname.Set.t(** Compute the ancestors of the node, if not pre-computed already *)
valget_heirs:t->Procname.t->Procname.Set.t(** Compute the heirs of the node, if not pre-computed already *)
valget_calls:t->Procname.t->in_out_calls(** Return the in/out calls of the node *)
valget_defined_nodes:t->Procname.tlist(** Return the list of nodes which are defined *)
valget_defined_children:t->Procname.t->Procname.Set.t(** Return the children of [n] which are defined *)
valget_dependents:t->Procname.t->Procname.Set.t(** Return the nodes dependent on [n] *)
valget_nLOC:t->int(** Return the number of LOC of the source file *)
valget_nodes_and_calls:t->(Procname.t*in_out_calls)list(** Return the list of nodes with calls *)
valget_nodes_and_defined_children:t->(Procname.t*Procname.Set.t)list(** Return all the nodes with their defined children *)
valget_nodes_and_edges:t->(Procname.t*bool)list*(Procname.t*Procname.t)list(** Return the list of nodes, with defined flag, and the list of edges *)
valget_nonrecursive_dependents:t->Procname.t->Procname.Set.t(** Return the children of [n] which are not heirs of [n] and are defined *)
valget_parents:t->Procname.t->Procname.Set.t(** Return the parents of [n] *)
valget_recursive_dependents:t->Procname.t->Procname.Set.t(** Return the ancestors of [n] which are also heirs of [n] *)
valget_source:t->DB.source_file(** Return the path of the source file *)
valload_from_file:DB.filename->toption(** Load a call graph from a file *)
valnode_defined:t->Procname.t->bool(** Returns true if the node is defined *)
valrestrict_defined:t->Procname.Set.toption->unit(** if not None, restrict defined nodes to the given set *)
valsave_call_graph_dotty:DB.filenameoption->(Procname.t->'alist)->t->unit(** Print the current call graph as a dotty file. If the filename is [None], use the current file dir inside the DB dir. *)
valstore_to_file:DB.filename->t->unit(** Save a call graph into a file *)
valnode_set_defined:t->Procname.t->bool->unit(** Change the defined flag of a node *)
(** Add a node to the call graph as defined *)
valadd_defined_node:t->Procname.t->unit
(** [calls_recursively g source dest] returns [true] if function [source]