The PureEvaler abstraction made things unnecessarily complex; it's better to just create a real Evaler for tests is pretty. The Evaler has a new ReplaceBuiltin method to make it easier to construct the expected test result.