Rename the Compiler monad to Stateful, and introduce a separate Compiler monad specialised on the error type