... to accomodate set recurrences like First/Follow, while retaining the flexibility needed to compute monotone map lattices.
See the changes to solveProblem
, which now takes a DependencyM graph domain a
action instead of a Node
. Previously, that meant that you could only effectively return a value of type domain
from your problem (through said Node
), now it's possible to return arbitrary an arbitrary value of type a
that can be computed by accessing any number of Node
s in the graph. You'll get the old API just by calling dependOn
on your node to construct the DependencyM
action.
Type inference worsened from this change, but it seems like a worthwhile improvement of the API.