int ret = doStepOne();
if (ret == RESULT_OK) {
ret = doStepTwo();
}
if (ret == RESULT_OK) {
ret = doStepThree();
}
return ret;
would just be doStepOne() >>= doStepTwo() >>= doStepThree()
in a language with support for monads.