Ah. I should have specified that I wanted to avoid closure-creation, since this needs to be efficient enough to compete with parsers that do that.
In any case, either way if you’re going to write an interpreter, you have to sprinkle liberally with Obj.magic
(as does Camlp5). I’m choosing to write a compiler so that I can avoid that.