One key difference between this and the IO monad or a free monad: There&#x27;s no continuation.<p>That is, you can&#x27;t communicate between the code that produces the command sequence and the code that interprets it. This is either a shortcoming, or a dramatic simplification, depending on your needs. I find that it&#x27;s often the latter, since it enforces a one-way information flow.