Module type used to define the state component for a dataflow algorithm.

`type t`````

Type for state.

`val equal : t ‑> t ‑> bool`

Equality between states.

`val join : t ‑> t ‑> t`

Join two states (the old one is the first parameter).

`val do_node : InferIR.Tenv.t ‑> InferIR.Procdesc.Node.t ‑> t ‑> t list * t list`

Perform a state transition on a node.

`val proc_throws : InferIR.Typ.Procname.t ‑> throws`

Can proc throw an exception?