Legend:
Library
Module
Module type
Parameter
Class
Class type
DataFlow performs a forward data flow analysis over a directed graph.
Run requires a type variable that is equipped with an implementation of imperative maps, a type property that is equipped with leq and join functions, and a data flow graph whose edges describe the propagation of properties. It performs a forward data flow analysis and returns its result.
The function solution has type variable -> property option. A reachable variable is mapped to Some _; an unreachable one is mapped to None.
moduleRun (M : sig ... end) (P : sig ... end) (G : sig ... end) : sig ... end
ForOrderedType is a special case of Run where it suffices to pass an ordered type T as an argument. A reference to a persistent map is used to hold the memoization table.
ForType is a special case of Run where it suffices to pass an arbitrary type T as an argument. A hash table is used to hold the memoization table. OCaml's built-in generic equality and hash functions are used.
moduleForType
(T : sig ... end)
(P : sig ... end)
(G : sig ... end) :
sig ... end
ForIntSegment is a special case of Run where the type of variables is the integer segment [0..n). An array is used to hold the table.
moduleForIntSegment
(K : sig ... end)
(P : sig ... end)
(G : sig ... end) :
sig ... end