force inlining of Let.interpret and If.interpret into loop

somewhat weird code to achieve that, but it should improve the warmup
times somewhat
avoid the useless creation of lists of size 0