This is used to signal to do() that the result is an Err
,
which short-circuits the generator and returns that Err
.
Using this exception for control flow in do() allows us
to simulate and_then() in the Err case: namely, we don't call op,
we just return self (the Err
).