@12 Oh, and one more note on this, in the languages with operator overloading this becomes downright _clean_. It becomes something like:
RunSomething >>| do_something_with_result >>| do_another_thing >>= deal_with_errors |> add_callback
Now it can even be concurrent and still nice and clean, with no changes to the code.
Which is why a lot of people like this pattern, but it does involve a different way of thinking, and I'd argue its absence from go is keenly felt.
@hrefna oh that is weird!