
#15282: Document how equality-bearing constructors are promoted in Core -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.8.1 Component: Compiler | Version: 8.4.3 Keywords: TypeInType | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | 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: {{{#!hs 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. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15282 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler