<div dir="ltr">I don't quite understand the comment about DerivingVia.<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">If Monad keeps return as a typeclass method, then DerivingVia could be used to produce an Applicative instance from a Monad instance.</span></blockquote><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br>Why would DerivingVia be needed for this? If you have your hands on a Monad instance, then you always have access to the corresponding Applicative instance, since Applicative is a superclass of Monad. I'm not sure how DerivingVia comes into play here, or how the "monad of no return" proposal would change anything about this. Can someone spell it out for me?</span><input name="virtru-metadata" type="hidden" value="{"email-policy":{"state":"closed","expirationUnit":"days","disableCopyPaste":false,"disablePrint":false,"disableForwarding":false,"expires":false,"isManaged":false},"attachments":{},"compose-window":{"secure":false}}"><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature">-- Dan Burton</div></div>
<br><div class="gmail_quote" style="">On Wed, Apr 25, 2018 at 6:11 PM, Andrew Martin <span dir="ltr"><<a href="mailto:andrew.thaddeus@gmail.com" target="_blank">andrew.thaddeus@gmail.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">Control.Applicative features a type named WrappedMonad that is used to recover an Applicative instance from a Monad instance. However, since GHC 7.10, it hasn't been possible to write an Monad instance without an Applicative instance. Consequently, this type is useless (with one caveat below). I propose removing this type.<div><br></div><div>Trac Ticket: <a href="https://ghc.haskell.org/trac/ghc/ticket/15027" target="_blank">https://ghc.haskell.<wbr>org/trac/ghc/ticket/15027</a></div><div>GitHub PR: <a href="https://github.com/ghc/ghc/pull/129" target="_blank">https://github.com/ghc/<wbr>ghc/pull/129</a></div><div><br></div><div>On the PR, David Feuer suggests that the type may have some utility depending on whether the monad-of-no-return proposal is accepted (and also on whether DerivingVia is accepted, but this one seems more sure). If Monad keeps return as a typeclass method, then DerivingVia could be used to produce an Applicative instance from a Monad instance. If anyone knows the status of this proposal, that could be helpful. This aside, all indication of approval or disapproval of this proposal are welcome. Also, I'd really love to know if anyone is even using this type.<span class="HOEnZb"><font color="#888888"><br clear="all"><div><br></div>-- <br><div class="m_2414701919997544903gmail_signature">-Andrew Thaddeus Martin</div>
</font></span></div></div>
<br>______________________________<wbr>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/libraries</a><br>
<br></blockquote></div><br></div></div>