"if you partially evaluate an interpreter with respect to a particular input, you get a compiler" https://blog.regehr.org/archives/1197