Rewrite the Interpreter again

Wrap the Machine parts in StateT and WriterT instead for farther
simplification.