[GHC] #8894: Clean up `Coercible` plumbing

GHC ghc-devs at haskell.org
Mon Mar 17 08:51:01 UTC 2014


#8894: Clean up `Coercible` plumbing
-------------------------------------+------------------------------------
        Reporter:  nomeata           |            Owner:
            Type:  task              |           Status:  new
        Priority:  normal            |        Milestone:
       Component:  Compiler          |          Version:  7.9
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown      |       Difficulty:  Unknown
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:  #8904
-------------------------------------+------------------------------------
Changes (by nomeata):

 * status:  closed => new
 * resolution:  fixed =>


Comment:

 > All this should work because Coercible and coerce are "wired-in" things,
 and so they are never written to an interface file

 Woudn’t they get written to `GHC.Types` hi interface?

 Also, would the info table for `MkCoerce` (or however it would be called
 then) without fields match ours? This requires knowledge of the RTS that I
 don’t have, so I felt safer with this approach, but if you think it might
 work, it’s worth a try.

 (I’d be tempted to put them in a module `GHC.Coerce` in `ghc-prim` and
 have `Data.Coerce` in `base` re-export it, to slowly work towards having
 no magic in base, but that is a minor point.)

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


More information about the ghc-tickets mailing list