#4166: unsafeCoerce#'s kind is not as liberal enough to inspect tag bits.
------------------------------+---------------------------------------------
Reporter: ekmett | Owner:
Type: feature request | Status: closed
Priority: normal | Milestone:
Component: Compiler | Version: 6.12.3
Resolution: worksforme | Keywords:
Difficulty: | Os: Unknown/Multiple
Testcase: | Architecture: Unknown/Multiple
Failure: None/Unknown |
------------------------------+---------------------------------------------
Changes (by simonmar):
* status: new => closed
* resolution: => worksforme
Comment:
Happily, this already works.
{{{
Prelude> import GHC.Exts
Prelude GHC.Exts> let x = I# (unsafeCoerce# True :: Int#)
Prelude GHC.Exts> x
1098195192
}}}
it works because `unsafeCoerce#` is not really a primop at all, but a
built-in identifier, and the type variables have the "open" kind (can be
instantiated by any type at all).
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4166#comment:2>
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