Chump fix for the return of the // problem.
Add a bunch of early returns, to cut down the indentation.
Few more early returns and dedents.
Whoops; list.get() is nonsense.
Add FunctionRegistry.derive().
Avoid caching expressions containing functions; they may be nondeterministic.