The terminal statuses, as their own type.
Implemented only by Success and Failure, so a caller that only cares about the outcome branches on two.