sig
type 'node edge = Edge of 'node * 'node | Exit of 'node
module type Node =
sig
type node
val pretty : Format.formatter -> node -> unit
module Dict :
sig
type 'a t
val create : int -> 'a -> 'a t
val get : 'a t -> node -> 'a
val set : 'a t -> node -> 'a -> unit
val iter : 'a t -> (node -> 'a -> unit) -> unit
val copy : 'a t -> 'a 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 -> 'a) -> t -> 'a -> '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 find : elt -> t -> elt
val of_list : elt list -> t
val min_elt : t -> elt
val max_elt : t -> elt
val split : elt -> t -> t * bool * t
val nearest_elt_le : elt -> t -> elt
val nearest_elt_ge : elt -> t -> elt
end
module Graph :
sig
val iter_succs : node -> (node -> unit) -> unit
val iter_preds : node -> (node -> unit) -> unit
val all_nodes : Set.t
val entry_node : node
val exit_nodes : node list
end
module DomTree :
sig
val dominates : node -> node -> bool
val domtree_postfix_iter : (node -> unit) -> unit
end
module Edge_Dict :
sig
type 'a t
val set : 'a t -> node edge -> 'a -> unit
val get : 'a t -> node edge -> 'a
val create : unit -> 'a t
val iter : 'a t -> (node edge -> 'a -> unit) -> unit
end
type abstract_value
val compile_node :
node -> abstract_value -> (node edge * abstract_value) list
val join : abstract_value list -> abstract_value
val mu :
(abstract_value -> abstract_value) ->
abstract_value -> abstract_value
end
module Make :
functor (N : Node) ->
sig val after : N.abstract_value -> N.abstract_value N.Edge_Dict.t end
end