After writing the previous post, it struck me that memoization could be done at the function level. If each function had an associated Map <Arguments> <Result>, lookup would be much simpler and more localized. One could then decide on a function-by-function basis which maps to expand.
-- Russ