<div dir="ltr">> <span style="font-family:arial,sans-serif;font-size:13px">But, I would pick one or the other over one with multiple personalities</span><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">This is a good mentality to have. Consider picking the one that allows the other one to be implemented in user land.</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">This would allow both parties to benefit from the integrated tooling & performance boosts of it being a native primitive. i.e. everybody wins.</span></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 28, 2014 at 8:12 PM, Kris Kowal <span dir="ltr"><<a href="mailto:kris.kowal@cixar.com" target="_blank">kris.kowal@cixar.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>In this case, a half pursuit of type purity is a side quest at the expense of users. Having two ways to resolve and two ways to observe a promise is unnecessarily confusing. In my experience, one method like "then", that unwraps recursively, and one function, like "Promise.cast", that automatically lifts if necessary, and "then" handlers that return into the waiting hands of "Promise.cast" are coherent and ergonomic. Having a choice between "cast" and "resolve" and a choice between "then" and "chain", will leave developers unnecessarily confused and worried all the while they use or abandon Promises as too subtle.</div>

<div><br></div><div>For quite some time, grammarians have been losing a war to impose Latin purity on English, in the case of split infinitives. Not long ago, the famous phrase, "to boldly go", were a racy departure from convention because in Latin, the infinitive verb "to go", is a single word, and you simply would not break the word in half to put a poetic adverb between the syllables. English is not Latin, and JavaScript is not Haskell. </div>

<div><br></div><div>Auto-lifting/unwrapping promises are beautiful. Purely monadic promises are beautifully captured by type theory. But, I would pick one or the other over one with multiple personalities. I would pick "Promise.cast" and "then", let complexity melt off the spec, and stop worrying.</div>

</div>
<br>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br></div>