<div dir="ltr"><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">these warning are supposed to be opt-in at the use sites,<br>
aren't they?</blockquote><div><br></div><div>As I read it, Phil's suggestion of a FORBIDINSTANCE language extension would be opt-in per module. Lennart's suggestion of attaching warnings to methods in the instance does not seem opt-in. Lennart, have I misinterpreted?<br><br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">People have circulated somewhat convincing examples that show how these<br>
Functor instances lead to real bugs.</blockquote><div><br></div><div>And there are those who are fine with these instances, too. You could imagine many more disagreements which are a consequence of polymorphism. So this feels more like a code-style/linting issue to me, and I think that using a tool like HLint would be more appropriate than introducing a language extension or other change to GHC.<br></div><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 25, 2016 at 1:35 PM, Kosyrev Serge <span dir="ltr"><<a href="mailto:_deepfire@feelingofgreen.ru" target="_blank">_deepfire@feelingofgreen.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Mark Roberts <<a href="mailto:markandrusroberts@gmail.com">markandrusroberts@gmail.com</a>> writes:<br>
> Perhaps such warnings could be added to a tool like HLint? I do not<br>
> think they belong in GHC.<br>
<br>
</span>People have circulated somewhat convincing examples that show how these<br>
Functor instances lead to real bugs.<br>
<br>
I doubt they would agree.<br>
<br>
Besides -- these warning are supposed to be opt-in at the use sites,<br>
aren't they?<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
с уважениeм / respectfully,<br>
Косырев Сергей<br>
</div></div></blockquote></div><br></div>