[GHC] #8563: Deriving with PolyKinds broken

GHC ghc-devs at haskell.org
Mon Nov 25 17:46:19 UTC 2013


#8563: Deriving with PolyKinds broken
------------------------------------+-------------------------------------
       Reporter:  edsko             |             Owner:
           Type:  bug               |            Status:  new
       Priority:  high              |         Milestone:
      Component:  Compiler          |           Version:  7.7
       Keywords:                    |  Operating System:  Unknown/Multiple
   Architecture:  Unknown/Multiple  |   Type of failure:  None/Unknown
     Difficulty:  Unknown           |         Test Case:
     Blocked By:                    |          Blocking:
Related Tickets:                    |
------------------------------------+-------------------------------------
 Compiling

 {{{
 {-# LANGUAGE DeriveDataTypeable, PolyKinds #-}
 module Tagged where

 import Data.Typeable
 import Data.Ix

 newtype Tagged s b = Tagged { unTagged :: b } deriving
   ( Eq, Ord, Ix, Bounded, Typeable )
 }}}

 gives

 {{{
 Tagged.hs:8:5:
     ‛Tagged’ is applied to too many type arguments
     In an expression type signature:
       Tagged k s b -> Tagged k s b -> Bool
     In the expression:
         GHC.Prim.coerce ((==) :: b -> b -> Bool) ::
           Tagged k s b -> Tagged k s b -> Bool
     In an equation for ‛==’:
         (==)
           = GHC.Prim.coerce ((==) :: b -> b -> Bool) ::
               Tagged k s b -> Tagged k s b -> Bool

 Tagged.hs:8:9:
     ‛Tagged’ is applied to too many type arguments
     In an expression type signature:
       Tagged k s b -> Tagged k s b -> Ordering
     In the expression:
         GHC.Prim.coerce (compare :: b -> b -> Ordering) ::
           Tagged k s b -> Tagged k s b -> Ordering
     In an equation for ‛compare’:
         compare
           = GHC.Prim.coerce (compare :: b -> b -> Ordering) ::
               Tagged k s b -> Tagged k s b -> Ordering

 Tagged.hs:8:14:
     ‛Tagged’ is applied to too many type arguments
     In an expression type signature:
       (,) (Tagged k s b) (Tagged k s b) -> [] (Tagged k s b)
     In the expression:
         GHC.Prim.coerce (range :: (,) b b -> [] b) ::
           (,) (Tagged k s b) (Tagged k s b) -> [] (Tagged k s b)
     In an equation for ‛range’:
         range
           = GHC.Prim.coerce (range :: (,) b b -> [] b) ::
               (,) (Tagged k s b) (Tagged k s b) -> [] (Tagged k s b)

 Tagged.hs:8:18:
     ‛Tagged’ is applied to too many type arguments
     In an expression type signature: Tagged k s b
     In the expression: GHC.Prim.coerce (minBound :: b) :: Tagged k s b
     In an equation for ‛minBound’:
         minBound = GHC.Prim.coerce (minBound :: b) :: Tagged k s b
 }}}

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


More information about the ghc-tickets mailing list