It works really well with Error objects.  Sometimes we throw around { code, body } type things though, which aren't as nice.  We should perhaps consider making those Error objects as well, though maybe not.