<div dir="ltr"><div>IMHO I would love to think of '<-' as a generic generator, which generates elements out of its rhs without any regard to the type.<br></div><div>Otherwise '<-' would not be as not-type-specific as most (every?) other operator is, in this dynamic language.</div>

<div>I mean, one could also think of tuple-comprehensions (though I don't see why immediately, but I am not all-seeing).</div><div><br></div><div>Anthony, fcall()#{ k := new_val } for example? Modify a key's value just after a call.</div>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I would avoid any ‘:’ character in the new operator because Jesper once had the idea of introducing strict generators with ‘<:-‘ and ‘<:=‘, which would not skip items that doesn’t match (e.g. "[ X || {ok, X} <:- [{error,Reason}] ]" would crash).</blockquote>

</div><br></div>Yes. It is a problem I have encountered quite often, where the code throws away terms deliberately and you have no way to fix this but to use a standard lists:map/2 call.<span class="HOEnZb"><font color="#888888"><br>