
I was only talking about semantics. Are you saying that, except for performance considerations, there is no reason to use
OUTCOME_TRY(handle, open_file(path)); OUTCOME_TRY(buffer, read_data(handle)); OUTCOME_TRY(val, parse(buffer)); return val;
instead of
return parse(read_data(open_file(path)));
It is rare that functions would consume an Outcome as a parameter. After all Outcome is not Expected, and Default Actions get a throw site away from the cause of the error. But in the end, there is nothing stopping you using Outcome as if Expected, and there is a `checked<T, E>` typedef in there just for those wanting a logic error checking Monad like Expected. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/