[GHC] #12950: unnecessarily complicated left-hand side causing RULE left-hand side too complicated to desugar

GHC ghc-devs at haskell.org
Fri Dec 9 00:21:45 UTC 2016


#12950: unnecessarily complicated left-hand side causing RULE left-hand side too
complicated to desugar
-------------------------------------+-------------------------------------
           Reporter:  nfrisby        |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  7.10.2
  (Type checker)                     |
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  Incorrect
  Unknown/Multiple                   |  error/warning at compile-time
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:  #10555,#12074
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 GHC 7.10.2 rejects the `SPECIALIZE` pragma in the following snippet with
 "RULE left-hand side too complicated to desugar".

 {{{#!hs
 class C a where
   type TF a; m :: a -> TF a

 instance C Int where
   type TF Int = String; m = show

 overloaded :: C a => a -> (a,TF a)
 {-# INLINABLE overloaded #-}
 overloaded a = (a,m a)

 {-# SPECIALIZE overloaded :: Int -> (Int,TF Int) #-}
 }}}

 This use case is so simple/basic/prevalent that it seems inappropriate to
 reject it.

 The actual message is

 {{{
     RULE left-hand side too complicated to desugar
       Optimised lhs: case cobox_awc
                      of _ [Occ=Dead] { GHC.Types.Eq# cobox ->
                      overloaded @ Int $dC_awb
                      }
       Orig lhs: case cobox_awc of cobox_awc { GHC.Types.Eq# cobox ->
                 overloaded @ Int $dC_awb
                 }
 }}}

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


More information about the ghc-tickets mailing list