The subset of variables bound in rule.match that we should try
to compute values for in order to apply the rule. When building
the cgraph, we always add a new edge with a single match var, but
if two edges are added with the same rule and compatible substitutions,
then we replace the two edges with a single edge with the union
of their match-vars.
Substitution to be applied to match terms of the rule. This is a source
of confusion because the match itself is a substitution, but each term
within it usually contain references to variables: usually the assigned-var,
but also sometimes e.g. the key for an assoc-like operation, array
index, etc.