Skip to content

Document how equality-bearing constructors are promoted in Core

In 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.

Trac metadata
Trac field Value
Version 8.4.3
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC goldfire
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information