still make Response a kind of exception, because:

we might be using that from jellyfish to jellyfish,
and we could still try to re-throw the response, but
that's a whole different story... probably it would be
much easier to just make it a kind of exception, and
you could decide whether to raise it or not.

the use case is something like:

    use ResponseHandler
    run AppWhichThrowResponses

so that we throw in the bottom, and re-raise it to upper.
again, we could re-throw, but that's introducing more complexity.