
#9122: Make Lint check for bad uses of `unsafeCoerce` -------------------------------------+------------------------------------ Reporter: simonpj | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: None/Unknown | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------ Comment (by goldfire): I was thinking of someone who wanted the raw pointer associated with a value of a lifted type. Coercing `Int` to `Int#` would seemingly get that pointer value. It's conceivable to me to imagine scenarios where this behavior is desired, such as debugging against some sort of memory dump. Going the other way might also be desirable, if Haskell code has to operate against some pre-loaded memory image. Maybe these sorts of things never happen in Haskell, but I've done them (when debugging kernels / device drivers) in other languages. Or, is the idea that all such shenanigans are subsumed by `Foreign.Ptr` and friends? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9122#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler