By removing unnecessary properties from the unifying Interpreter trait and constructing the more complex 'scoped' evaluation recursion within the apply method, we can unify the Interpreter type (so that naive and scoped interpreters can be used interchangeably - though BufferingInterpreter will run some risk of runtime issues for extents as of now)
By removing unnecessary properties from the unifying
Interpreter
trait and constructing the more complex 'scoped' evaluation recursion within theapply
method, we can unify theInterpreter
type (so that naive and scoped interpreters can be used interchangeably - thoughBufferingInterpreter
will run some risk of runtime issues for extents as of now)