The Paradox of Partial Parametricity

Mark S. Miller erights at
Fri May 10 14:18:04 PDT 2013

Hi Tab, these are the three architectures I am trying to compare in order
to make a point. Since you don't like the labels I've chosen for them,
please suggest alternatives that should be clear and acceptable to all so
that we can resume the conversation. Thanks.

On Fri, May 10, 2013 at 2:14 PM, Tab Atkins Jr. <jackalmage at>wrote:

> On Fri, May 10, 2013 at 2:04 PM, Mark S. Miller <erights at>
> wrote:
> > Hi Tab, I did not intend to start a fight with you over the term "monadic
> > promises".
> I didn't intend to start a fight either.  ^_^  I just wanted to make
> sure no one was arguing against strawmen.
> > Since we seem to be otherwise in agreement on the three
> > architectures to be compared as well as many of the implications of each,
> > I'm happy to call the first bullet above "unabashed monadic promises",
> the
> > second "Q-like promises" and the third "abashed monadic promises". Is
> this
> > acceptable? If not, please suggest something you expect we can all find
> > acceptable. AFAICT, this is the last terminology battle that still
> distracts
> > us from semantics.
> >
> > One request: If you do suggest alternate terminology, don't call #3
> "monadic
> > promises" while at the same time calling #1 "<adjective> monadic
> promises".
> > That would make #1 seem like a subtype of #3. Either prefix both with an
> > adjective or make them otherwise distinct.
> I don't think we need to refer to "unabashed monadic promises" (your
> #1) at all - nobody's seriously defending them, and they're far from
> Promises/A+.  It's trivial to add map() and flatMap() to promises if
> you want them, but .then() functions as a perfectly fine flatMap()
> already if you maintain type discipline yourself.
> The only serious proposals seem to be "Q-like promises", which
> explicitly prevent nested promises by auto-flattening when necessary,
> and "monadic promises", which allow nested promises if you explicitly
> ask for it (but the flattening semantics ensure that it's hard to
> accidentally fall into a nested case).
> ~TJ

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list