<p>Note that instead of adding virtual methods to the ExprAST class hierarchy,
it could also make sense to use a visitor pattern or some other way to model
this. Again, this tutorial won't dwell on good software engineering practices:
-for our purposes, adding virtual methods is simplest.</p>
+for our purposes, adding a virtual method is simplest.</p>
<p>The
second thing we want is an "Error" method like we used for parser, which will