Are the Derived class and the substitute methods both needed? Is "Substitution" a better name for "Derived"? [Paul Klint's tutorial on Term Rewriting](http://www.meta-environment.org/doc/books/extraction-transformation/term-rewriting/term-rewriting.html) doesn't use the term "Derived", but perhaps Derived is just a Substitution in Klint's terminology? <!--- @huboard:{"order":3.0,"milestone_order":3,"custom_state":""} -->