Opened 5 years ago

Closed 5 years ago

#9750 closed bug (fixed)

Core lint failure with TypeLits Symbol

Reported by: dreixel Owned by:
Priority: normal Milestone:
Component: Compiler Version: 7.9
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case: polykinds/T9750
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:


The following module:

{-# LANGUAGE FlexibleInstances      #-}
{-# LANGUAGE TypeFamilies           #-}
{-# LANGUAGE DataKinds              #-}
{-# LANGUAGE ScopedTypeVariables    #-}

module Bug where

import GHC.TypeLits ( Symbol, KnownSymbol )


data Meta = MetaCons Symbol
data M1 (c :: Meta) = M1

class Generic a where
  type Rep a :: *
  from  :: a -> Rep a


data A = A1

instance Generic A where
  type Rep A = M1 ('MetaCons "test")
  from A1 = M1

class GShow' f where
  gshowsPrec' :: f -> ShowS

instance (KnownSymbol c) => GShow' (M1 ('MetaCons c))
instance GShow' A where gshowsPrec' = gshowsPrec' . from

fails -dcore-lint in HEAD with:

*** Core Lint errors : in result of Desugar (after optimization) ***
<no location info>: Warning:
    [RHS of $dKnownSymbol_azn :: GHC.TypeLits.KnownSymbol "test"]
    From-type of Cast differs from type of enclosed expression
    From-type: GHC.TypeLits.KnownSymbol "test"
    Type of enclosed expr: [GHC.Types.Char]
    Actual enclosed expr: GHC.CString.unpackCString# "test"#
    Coercion used in cast: GHC.TypeLits.NTCo:KnownSymbol[0] <"test">_N
                           ; GHC.TypeLits.NTCo:SSymbol[0] <"test">_P

Attachments (1)

Generics.hs (757 bytes) - added by dreixel 5 years ago.

Download all attachments as: .zip

Change History (4)

Changed 5 years ago by dreixel

Attachment: Generics.hs added

comment:1 Changed 5 years ago by simonpj

works on wip/new-flatten-skolems-Oct14!!

comment:2 Changed 5 years ago by Simon Peyton Jones <simonpj@…>

comment:3 Changed 5 years ago by simonpj

Resolution: fixed
Status: newclosed
Test Case: polykinds/T9750

Fixed with the new type inference engine; regression test added.

Note: See TracTickets for help on using tickets.