Module type Fang_flow.RULE

Describes how to compute facts for each kind of node in a graph incrementally.

type fact

See FACT.

val first : fact -> Node.first -> fact

first fact n is a fact for the entry into the first node in a block, n, given the currently-known fact for the entry into the next node.

val middle : fact -> Node.middle -> fact

middle fact n is a fact for the entry into an assembly node in a block, n, given the currently-known fact for the entry into the next node.

val last : (block -> fact) -> graph -> Node.last -> fact

last q g n is a fact for the entry into the last node in the graph g, n, given a function which queries for the currently-known fact at the entry-point of an arbitrary block (q).