sig   type t   val get : Kernel_function.t -> Cil2cfg.t   type node   val pp_node : Format.formatter -> Cil2cfg.node -> unit   val same_node : Cil2cfg.node -> Cil2cfg.node -> bool   type edge   val pp_edge : Format.formatter -> Cil2cfg.edge -> unit   val same_edge : Cil2cfg.edge -> Cil2cfg.edge -> bool   val start_edge : Cil2cfg.t -> Cil2cfg.edge   module Eset :     sig       type elt = edge       type t       val empty : t       val is_empty : t -> bool       val mem : elt -> t -> bool       val add : elt -> t -> t       val singleton : elt -> t       val remove : elt -> t -> t       val union : t -> t -> t       val inter : t -> t -> t       val diff : t -> t -> t       val compare : t -> t -> int       val equal : t -> t -> bool       val subset : t -> t -> bool       val iter : (elt -> unit) -> t -> unit       val fold : (elt -> '-> 'a) -> t -> '-> 'a       val for_all : (elt -> bool) -> t -> bool       val exists : (elt -> bool) -> t -> bool       val filter : (elt -> bool) -> t -> t       val partition : (elt -> bool) -> t -> t * t       val cardinal : t -> int       val elements : t -> elt list       val choose : t -> elt       val split : elt -> t -> t * bool * t       val find : elt -> t -> elt       val of_list : elt list -> t       val min_elt : t -> elt       val max_elt : t -> elt       val nearest_elt_le : elt -> t -> elt       val nearest_elt_ge : elt -> t -> elt     end   val edge_src : Cil2cfg.edge -> Cil2cfg.node   val edge_dst : Cil2cfg.edge -> Cil2cfg.node   val pred_e : Cil2cfg.t -> Cil2cfg.node -> Cil2cfg.edge list   val succ_e : Cil2cfg.t -> Cil2cfg.node -> Cil2cfg.edge list   val fold_nodes : (Cil2cfg.node -> '-> 'a) -> Cil2cfg.t -> '-> 'a   val iter_nodes : (Cil2cfg.node -> unit) -> Cil2cfg.t -> unit   val iter_edges : (Cil2cfg.edge -> unit) -> Cil2cfg.t -> unit   type block_type = private       Bstmt of Cil_types.stmt     | Bthen of Cil_types.stmt     | Belse of Cil_types.stmt     | Bloop of Cil_types.stmt     | Bfct   type call_type =       Dynamic of Cil_types.exp     | Static of Cil_types.kernel_function   val pp_call_type : Format.formatter -> Cil2cfg.call_type -> unit   val get_call_type : Cil_types.exp -> Cil2cfg.call_type   type node_type = private       Vstart     | Vend     | Vexit     | VfctIn     | VfctOut     | VblkIn of Cil2cfg.block_type * Cil_types.block     | VblkOut of Cil2cfg.block_type * Cil_types.block     | Vstmt of Cil_types.stmt     | Vcall of Cil_types.stmt * Cil_types.lval option * Cil2cfg.call_type *         Cil_types.exp list     | Vtest of bool * Cil_types.stmt * Cil_types.exp     | Vswitch of Cil_types.stmt * Cil_types.exp     | Vloop of bool option * Cil_types.stmt     | Vloop2 of bool * int   val node_type : Cil2cfg.node -> Cil2cfg.node_type   val pp_node_type : Format.formatter -> Cil2cfg.node_type -> unit   val node_stmt_opt : Cil2cfg.node -> Cil_types.stmt option   val start_stmt_of_node : Cil2cfg.node -> Cil_types.stmt option   val unreachable_nodes : Cil2cfg.t -> Cil2cfg.node_type list   val get_test_edges :     Cil2cfg.t -> Cil2cfg.node -> Cil2cfg.edge * Cil2cfg.edge   val get_switch_edges :     Cil2cfg.t ->     Cil2cfg.node -> (Cil_types.exp list * Cil2cfg.edge) list * Cil2cfg.edge   val get_call_out_edges :     Cil2cfg.t -> Cil2cfg.node -> Cil2cfg.edge * Cil2cfg.edge   val blocks_closed_by_edge :     Cil2cfg.t -> Cil2cfg.edge -> Cil_types.block list   val is_back_edge : Cil2cfg.edge -> bool   val strange_loops : Cil2cfg.t -> Cil2cfg.node list   val very_strange_loops : Cil2cfg.t -> Cil2cfg.node list   val get_edge_labels : Cil2cfg.edge -> Clabels.c_label list   val get_edge_next_stmt : Cil2cfg.t -> Cil2cfg.edge -> Cil_types.stmt option   val has_exit : Cil2cfg.t -> bool   val get_pre_edges : Cil2cfg.t -> Cil2cfg.node -> Cil2cfg.edge list   val get_post_edges : Cil2cfg.t -> Cil2cfg.node -> Cil2cfg.edge list   val get_post_logic_label :     Cil2cfg.t -> Cil2cfg.node -> Cil_types.logic_label option   val get_exit_edges : Cil2cfg.t -> Cil2cfg.node -> Cil2cfg.edge list   val get_internal_edges :     Cil2cfg.t -> Cil2cfg.node -> Cil2cfg.edge list * Cil2cfg.Eset.t   val cfg_kf : Cil2cfg.t -> Kernel_function.t   val cfg_spec_only : Cil2cfg.t -> bool   module type HEsig =     sig       type ti       type t       val create : int -> Cil2cfg.HEsig.t       val find : Cil2cfg.HEsig.t -> Cil2cfg.edge -> Cil2cfg.HEsig.ti       val find_all : Cil2cfg.HEsig.t -> Cil2cfg.edge -> Cil2cfg.HEsig.ti list       val add : Cil2cfg.HEsig.t -> Cil2cfg.edge -> Cil2cfg.HEsig.ti -> unit       val replace :         Cil2cfg.HEsig.t -> Cil2cfg.edge -> Cil2cfg.HEsig.ti -> unit       val remove : Cil2cfg.HEsig.t -> Cil2cfg.edge -> unit       val clear : Cil2cfg.HEsig.t -> unit     end   module HE :     functor (I : sig type t end->       sig         type ti = I.t         type t         val create : int -> t         val find : t -> edge -> ti         val find_all : t -> edge -> ti list         val add : t -> edge -> ti -> unit         val replace : t -> edge -> ti -> unit         val remove : t -> edge -> unit         val clear : t -> unit       end   type pp_edge_fun = Format.formatter -> Cil2cfg.edge -> unit end