[GHC] #9163: Ptr should have a phantom role

GHC ghc-devs at haskell.org
Tue Jun 3 14:52:58 UTC 2014


#9163: Ptr should have a phantom role
-------------------------------------+------------------------------------
        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 nomeata):

 I tried it, and hPutBuf & Co are called with `Ptr Word8` (sometimes called
 `LitString`) in all cases but `BufWrite.bPutCStringLen`, where we have a
 `Ptr CChar`, where `CChar` is a newtype. So by using `coerce` there (and
 `unsafeCoerce` during bootstrapping), we get the best of boths worlds: The
 more restrictive role and the free behaviour.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9163#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list