<div dir="ltr"><div>My message was written too hastily, sorry about that.</div><div><br></div><div>The example Alexey asked is exactly what the ApplicativeDo proposal[1] uses as motivation. The point of it is that you shouldn't need to care about writing applicative or do-style, when the behavior differs the most efficient one can be used.</div><div>Though as it stands the proposal seems to run into the problem of being unintuitive like others mentioned since you need to enable an extension. A type implementing this functionality would need to be documented as  "Enable ApplicativeDo when using this, or be very confused"</div><div><br></div><div><br></div><div>[1] <a href="https://ghc.haskell.org/trac/ghc/wiki/ApplicativeDo">https://ghc.haskell.org/trac/ghc/wiki/ApplicativeDo</a></div><div><br></div><div>- Adam</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, May 1, 2015 at 2:00 PM, Ross Paterson <span dir="ltr"><<a href="mailto:R.Paterson@city.ac.uk" target="_blank">R.Paterson@city.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Apr 30, 2015 at 10:11:49PM -0700, Andrew Gibiansky wrote:<br>
</span><span class="">> I agree that, now that we have AMP, applicative and monadic interfaces<br>
> absolutely *should* match, and that it should be considered an error for them<br>
> not to; semantically different interfaces can be provided with newtypes.<br>
<br>
</span>This requirement is in the documentation for both Applicative and Monad<br>
classes.  (It's been in Applicative since 2010, and was added to Monad<br>
in the AMP release.)<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div>