<div dir="ltr">are you arguing in favor of GOTO instead of an operator?<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 11, 2018 at 11:09 AM, <a href="mailto:e@bestmx.net">e@bestmx.net</a> <span dir="ltr"><<a href="mailto:e@bestmx.net" target="_blank">e@bestmx.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
    i'm sorry to interrupt,<br>
    but all you REALLY NEED is to tweak the "try..catch" a little bit,<br>
    in a manner that the catch clause receives and returns<br>
    more comprehensible values, the values that are clearly linked<br>
    with the failed expressions and human readable.<br>
<br>
    you do not need a new messy CRYPTIC operator.<br>
<br>
    try<br>
       {ok, Result} = foo(...)<br>
    , {ok, _} = foo2(...)<br>
    catch<br>
      {somehow_identify_which_<wbr>line_failed, unobscured_the_rightside_value<wbr>}<br>
<br>
<br>
This here is exactly the problem -- you can't somehow identify which line failed unobscured with the right value.<br>
</blockquote>
<br></span>
[irrelevant technicalities skipped]<br>
<br>
so this problem should be solved.<br>
exactly this problem.<br>
and another operator is not a solution.<br>
<br>
option 1:<br>
you introduce labels in the try's context<br>
<br>
try<br>
  a: {ok, Result} = foo()<br>
, b: {ok, R} = foo2()<br>
catch<br>
  {a, Error_Code, Actual_Return_Value} -> ...<br>
; {b, _} -> ...<br>
end<br>
</blockquote></div><br></div>