A Challenge Problem for Promise Designers

Tab Atkins Jr. jackalmage at gmail.com
Sat Apr 27 10:09:24 PDT 2013


On Sat, Apr 27, 2013 at 10:05 AM, Mark S. Miller <erights at google.com> wrote:
> Are you distinguishing "autolifting" vs "lifting"? If so, why do you think
> it is important or desirable to provide a lifting operation (as opposed to
> an autolifting operation)?

Because the "lifting" operation is the monadic lifting operation,
which you need if you want to write monadic code that works
predictably.  If all you have is an auto-lifter, your code will
randomly fail sometimes in mysterious ways, because you're violating
the monad laws.  (In a distinct, though thematically similar, way to
how your code sometimes mysteriously fails if you use the Array
constructor instead of Array.of().)

~TJ


More information about the es-discuss mailing list