se&mdash;is to write a <span class="ix-entry" ix-key="software design!generic function" markdown="1">generic function</span>
that checks a rule and records any nodes that don&rsquo;t satisfy it,
and then call that function once for each rule inside our <code>Identifier</code> handler.
This may seem like extra work,
but it ensures that all of our rule-checkers store their results in the same way,
which in turn means that we can write one reporting function
and be sure it will handle everything.</p>
<p>The fu