At core this looks reasonable. However, mutable state implied by
setOutputVariable! is a nightmare in basic library. Rather, library
should use something like "?" and if desired setOutputVariable! be
part of some user facing domain.
Also, refactoring should start from categories and we would need
categories that are good both for domains without variable and
expansion point and for ones containing them.
There are other potential tricky points, one would have to try
to see if it works better than current code.
> Erm, .. but what should I call those domains/categories?
That is somewhat problematic. We have several series domains
which already have longish names. Old code uses prefix like
Inner to indicate implementation domains, but that leads to
even longer names.
--
Waldek Hebisch