further generalized type of Interpreter.build