It would be nice to be able to throw `Envelope` errors in some sort of short circuiting monad. I'm not sure if there is a good / clean / easy way to implement this, but I would be interested in different possibilities.