[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