Instead of using Strings everywhere, define new types for Value, NodeName, NodeLabel, and EdgeLabel. These are no longer Strings, but structured objects.
Remove the type parameter d from FGG, HGF, etc. NodeLabel (which is a synonym for Type) takes its place.
A special case for creating a start rule was removed; I don't think it was necessary.
The dangling edges created by discardEdges' were removed; I don't think they were necessary.
Hopefully it should be clearer now where Vars used (for #107).
This is a big set of changes, but the summary is:
d
from FGG, HGF, etc. NodeLabel (which is a synonym for Type) takes its place.discardEdges'
were removed; I don't think they were necessary.Hopefully it should be clearer now where
Var
s used (for #107).