generalized type of Interpreter.build