Opened 5 weeks ago

Closed 4 weeks ago

#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:

Description

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 5 weeks ago by RyanGlScott

Owner: set to goldfire

comment:2 Changed 5 weeks ago by Richard Eisenberg <rae@…>

In 26e9806/ghc:

Document and simplify tcInstTyBinders

This fixes #15282.

comment:3 Changed 5 weeks ago by goldfire

Status: newmerge

All set now.

comment:4 Changed 4 weeks ago by RyanGlScott

Milestone: 8.8.18.6.1
Resolution: fixed
Status: mergeclosed

This is in GHC 8.6.

Note: See TracTickets for help on using tickets.