[GHC] #10347: Spurious "unused constructor" warning with Coercible
GHC
ghc-devs at haskell.org
Thu Apr 23 13:52:30 UTC 2015
#10347: Spurious "unused constructor" warning with Coercible
-------------------------------------+-------------------------------------
Reporter: goldfire | Owner: goldfire
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.11
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: Incorrect
Unknown/Multiple | warning at compile-time
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Revisions: |
-------------------------------------+-------------------------------------
When I say
{{{
{-# LANGUAGE RoleAnnotations #-}
module Bug (N, twiddle) where
import Data.Coerce
newtype N a = MkN Int
type role N representational
twiddle :: N a -> N b
twiddle = coerce
}}}
I get
{{{
Bug.hs:7:15: warning: Defined but not used: data constructor ‘MkN’
}}}
But the constructor ''is'' used, in order to do the coercion. The role
annotation is to force GHC to use the constructor to do the coercion --
otherwise, it might not have.
This bug exists in 7.10 and in HEAD.
I will fix.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10347>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list