SPECIALIZE causing duplicate assembler symbols
The program below causes duplicate assembler symbols when compiled -O with ghc 6.9.20080816 (but not with ghc 6.8.2)
There's no profiling involved otherwise I'd have assumed this was a duplicate of #2410 (closed).
{-# LANGUAGE GADTs #-}
module Types where
data Prod a b = Prod a b
data Nil = Nil
class ProdSel f where
nil :: f Nil
prod :: f x -> f y -> f (Prod x y)
instance ProdSel SqlFields where
nil = SFNil
prod = SFProd
{-# SPECIALIZE reproject :: SqlFields a -> SqlFields a #-}
reproject :: ProdSel f => SqlFields a -> f a
reproject SFNil = nil
reproject (SFProd a b) = prod (reproject a) (reproject b)
data SqlFields a where
SFNil :: SqlFields Nil
SFProd :: SqlFields a -> SqlFields b -> SqlFields (Prod a b)
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.9 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |