[GHC] #11457: Run type-checker plugins before GHC's solver

GHC ghc-devs at haskell.org
Mon Jan 18 23:58:40 UTC 2016


#11457: Run type-checker plugins before GHC's solver
-------------------------------------+-------------------------------------
           Reporter:  gridaphobe     |             Owner:
               Type:  feature        |            Status:  new
  request                            |
           Priority:  normal         |         Milestone:  8.0.1
          Component:  Compiler       |           Version:  8.0.1-rc1
  (Type checker)                     |
           Keywords:  plugin         |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Here's an odd use-case for type-checker plugins: rejecting ''valid''
 programs that the user doesn't like, for example, programs that use a
 class instance with confusing behavior (like the functor/traversable
 instances on tuples).

 Unfortunately, we can't write such a plugin at the moment because GHC runs
 its own solver first, and will (I think) discharge any dictionary
 constraints before the plugin can run. If instead we run the plugins
 first, a plugin could mark undesired instances as insoluble.

 See the discussion at
 http://mail.haskell.org/pipermail/libraries/2016-January/026602.html for
 the original motivation.

 Thoughts?

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


More information about the ghc-tickets mailing list