## Parameters

`module G : G`
`module A : Analysis with type g = G.t with type edge = G.E.t with type vertex = G.V.t`

## Signature

`val analyze : (G.V.t -> A.data) -> A.g -> G.V.t -> A.data`

`analyze f g` computes the fixpoint on the given graph using the work list algorithm. Beware that a misconstructed Analysis will not terminate! `f` is used to create the initial analysis data. The function returned is a map to see what data was computed for which node.

Beware of applying function `analyze` partially, to arguments `f` and `g` only. The result is a function that is to be used to query the result of the analysis.