sig   type node   val pretty : Format.formatter -> Region_analysis_sig.Node.node -> unit   module Dict :     sig       type 'a t       val create : int -> '-> 'Region_analysis_sig.Node.Dict.t       val get :         'Region_analysis_sig.Node.Dict.t ->         Region_analysis_sig.Node.node -> 'a       val set :         'Region_analysis_sig.Node.Dict.t ->         Region_analysis_sig.Node.node -> '-> unit       val iter :         'Region_analysis_sig.Node.Dict.t ->         (Region_analysis_sig.Node.node -> '-> unit) -> unit       val copy :         'Region_analysis_sig.Node.Dict.t ->         'Region_analysis_sig.Node.Dict.t     end   module Set :     sig       type elt = node       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   module Graph :     sig       val iter_succs :         Region_analysis_sig.Node.node ->         (Region_analysis_sig.Node.node -> unit) -> unit       val iter_preds :         Region_analysis_sig.Node.node ->         (Region_analysis_sig.Node.node -> unit) -> unit       val all_nodes : Region_analysis_sig.Node.Set.t       val entry_node : Region_analysis_sig.Node.node       val exit_nodes : Region_analysis_sig.Node.node list     end   module DomTree :     sig       val dominates :         Region_analysis_sig.Node.node ->         Region_analysis_sig.Node.node -> bool       val domtree_postfix_iter :         (Region_analysis_sig.Node.node -> unit) -> unit     end   module Edge_Dict :     sig       type 'a t       val set :         'Region_analysis_sig.Node.Edge_Dict.t ->         Region_analysis_sig.Node.node Region_analysis_sig.edge -> '-> unit       val get :         'Region_analysis_sig.Node.Edge_Dict.t ->         Region_analysis_sig.Node.node Region_analysis_sig.edge -> 'a       val create : unit -> 'Region_analysis_sig.Node.Edge_Dict.t       val iter :         'Region_analysis_sig.Node.Edge_Dict.t ->         (Region_analysis_sig.Node.node Region_analysis_sig.edge -> '-> unit) ->         unit     end   type abstract_value   val compile_node :     Region_analysis_sig.Node.node ->     Region_analysis_sig.Node.abstract_value ->     (Region_analysis_sig.Node.node Region_analysis_sig.edge *      Region_analysis_sig.Node.abstract_value)     list   val join :     Region_analysis_sig.Node.abstract_value list ->     Region_analysis_sig.Node.abstract_value   val mu :     (Region_analysis_sig.Node.abstract_value ->      Region_analysis_sig.Node.abstract_value) ->     Region_analysis_sig.Node.abstract_value ->     Region_analysis_sig.Node.abstract_value end