This article is very incredible!
Can you specify some literature for the Interpreter pattern?
It's pretty close to free monad. You can check free monad recipe out. Also there's turtle program interpreter example.
Someone please correct me if I'm wrong, but free monad adds another layer of abstraction on top of interpreter: when in interpreter you have an exit node in you initial instruction tree, free monad has an additional type with 1 node for instruction (without exit node) and 1 exit node.