#15282 closed bug (fixed)

Document how equality-bearing constructors are promoted in Core

Reported by: RyanGlScott Owned by: goldfire
Priority: normal Milestone: 8.6.1
Component: Compiler Version: 8.4.3
Keywords: TypeInType Cc: goldfire
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: #14845 Differential Rev(s):
Wiki Page:


In Phab:D4728, Simon was utterly baffled as to how one could promote the MkT constructor in:

data T a where
  MkT :: (a ~ Int) => T a

Richard knows the inner machinations of how this works (including what coercions are used in the Core that 'MkT desugars to), but not many others do. Simon requested that Richard document this knowledge in a Note somewhere. This ticket exists to keep track of this request.

Change History (4)

comment:1 Changed 15 months ago by RyanGlScott

Owner: set to goldfire

comment:2 Changed 15 months ago by Richard Eisenberg <rae@…>

In 26e9806/ghc:

Document and simplify tcInstTyBinders

This fixes #15282.

comment:3 Changed 15 months ago by goldfire

Status: newmerge

All set now.

comment:4 Changed 15 months ago by RyanGlScott

Resolution: fixed
Status: mergeclosed

This is in GHC 8.6.

Note: See TracTickets for help on using tickets.