[GHC] #13841: ADOPT pragma for silencing orphan instances warnings per instance

GHC ghc-devs at haskell.org
Thu Jun 22 16:16:07 UTC 2017


#13841: ADOPT pragma for silencing orphan instances warnings per instance
-------------------------------------+-------------------------------------
        Reporter:  cocreature        |                Owner:  (none)
            Type:  feature request   |               Status:  closed
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.3
      Resolution:  wontfix           |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #602, #10150      |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by cocreature):

 * status:  new => closed
 * resolution:   => wontfix


Comment:

 Replying to [comment:2 RyanGlScott]:
 > Let me offer a dissenting opinion. I don't think we should be
 introducing tailor-made pragmas to suppress certain warnings like this. If
 we are in the business of suppressing warnings, we really should have a
 general mechanism that could work for //any// warning by delimiting
 regions of code that should have the warning disabled (the subject of
 #602). IMO, anything less than this is asking for trouble down the road.
 >
 > Moreover, I'm not a fan of changing the syntax of instances themselves
 just for the purposes of warning generation. We already have at least one
 pragma you can put in the same position, so now this would lead to pragma
 noise like:
 >
 > {{{#!hs
 > instance {-# OVERLAPPING #-} {-# ADOPT #-} C T
 > }}}
 >
 > In addition, we'd have to update the GHC and Template Haskell ASTs to
 support this, and I don't think what this buys us is worth the cost.

 You’re raising some good points here. My reasoning was that orphan
 instance warnings are different from most other warnings since you are
 often in a situation where you ''can’t'' fix it rather than just not
 wanting to fix it. Also I was hoping that by sidestepping the issues and
 questions accompanying we might get a significantly simpler implementation
 and can thereby get this feature a lot quicker. However, as you’ve
 correctly pointed out it’s not as simple as I’ve thought since it also
 affects TH so after considering all of this, I think it’s better to just
 focus the efforts on disabling warnings locally and will try to work on
 that myself so I’m closing this issue. Thanks for your comments!

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13841#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list