[GHC] #15625: GHC panic, with QuantifiedConstraints

GHC ghc-devs at haskell.org
Tue Sep 11 16:03:57 UTC 2018


#15625: GHC panic, with QuantifiedConstraints
-------------------------------------+-------------------------------------
        Reporter:  Iceland_jack      |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.6.1-beta1
      Resolution:                    |             Keywords:
                                     |  QuantifiedConstraints
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 Iceland_jack):

 > ''[narrator] it was the equality constraint''

 thanks monoidal :] the purpose for this is to be able to write
 `Control.Category.id` of the form

 {{{#!hs
 id :: KLEISLI m (KL a) (KL a)
 id = MkKLEISLI pure
 }}}

 but when we define

 {{{#!hs
 instance Category (KLEISLI m) where
   id :: KLEISLI m kl_a kl_a
   id = ..
 }}}

 GHC doesn't know that `kl_a` is of the form `KL a` (same as #7259) so I
 want to constraint the type signature of `id` by saying `(forall a. kl_a ~
 KL a)`.

 But that is uncouth since it's "quantifying over constraints headed by
 `(~)`" (ticket:15593#comment:1)

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


More information about the ghc-tickets mailing list