#4912: No warnings for orphan instances declared via TypeSynonymInstances
---------------------------------+------------------------------------------
    Reporter:  batterseapower    |       Owner:                                 
  
        Type:  bug               |      Status:  new                            
  
    Priority:  normal            |   Component:  Compiler                       
  
     Version:  7.0.1             |    Keywords:                                 
  
    Testcase:                    |   Blockedby:                                 
  
          Os:  Unknown/Multiple  |    Blocking:                                 
  
Architecture:  Unknown/Multiple  |     Failure:  Incorrect warning at 
compile-time
---------------------------------+------------------------------------------
 File Classes.hs:

 {{{
 module Classes where

 data TheirData = TheirData

 class Foo a where
     foo :: a -> a

 class Bar a where
     bar :: a -> String
 }}}

 File Orphans.hs:

 {{{
 {-# LANGUAGE TypeSynonymInstances #-}
 module Orphans where

 import Classes


 type OurData = TheirData

 instance Foo TheirData where
     foo = id

 instance Bar OurData where
     bar _ = "Ours"
 }}}

 Compile:

 {{{
 $ ghc --make -fforce-recomp -fwarn-orphans Orphans.hs
 [1 of 2] Compiling Classes          ( Classes.hs, Classes.o )
 [2 of 2] Compiling Orphans          ( Orphans.hs, Orphans.o )

 Orphans.hs:9:10: Warning: orphan instance: instance Foo TheirData
 }}}

 This is not my expected result. We should get orphan instance warnings for
 Bar OurData  as well, since OurData is just a thinly-disguised version of
 TheirData.

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

_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to