[GHC] #15147: Type checker plugin receives Wanteds that are not completely unflattened

GHC ghc-devs at haskell.org
Tue Jun 12 17:02:01 UTC 2018


#15147: Type checker plugin receives Wanteds that are not completely unflattened
-------------------------------------+-------------------------------------
        Reporter:  nfrisby           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.6.1
       Component:  Compiler (Type    |              Version:  8.4.1
  checker)                           |             Keywords:
      Resolution:                    |  TypeCheckerPlugins
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by diatchki):

 I agree with Simon here, I think it'd be more consistent if the plugins
 were always given the flattened constraints, as it seems simpler and more
 consistent.

 Also, is it the case that un-flattening only substitutes in the variables
 that it introduces by flattening, and not all constraints that are in a
 similar form?  More concretely, if I a programmer wrote `x ~ F a, G x ~ G
 Int`, then would un-flattening rewrite this to `G (F a) ~ G Int` or would
 it leave it as is?   If the latter, then plugins should already be
 prepared to deal with this case, as it would be quite odd if the one form
 worked but the other didn't.

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


More information about the ghc-tickets mailing list