
#12415: Fancy BinIface encoding for tuples is broken for constraint tuples -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12357 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bgamari): One of the roadblocks standing in the way of reinstating this encoding is that the constraint tuple's `Name`s are actually quite different from the other tuples (and even boxed/unboxed sums). There are five `Name`s associated with a type (or class) that we need to worry about in these cases, a. the `Name` of the `TyCon` b. the `Name` of its `DataCon` c. the `Name` of its `DataCon` worker d. the `Name` of its type representation e. the `Name` of its promoted data constructor type representation In the case of boxed and unboxed tuples a, b, and c are wired-in and d and e are known-key. In the case of constraint tuples, however, a is known-key and the rest are unknown to the compiler, requiring a lookup in the `GHC.Classes` interface file. This means that it is quite difficult to spot most of the `Name`s that for boxed and unboxed tuples we encode specially. Simon, do you think this is worth fixing? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12415#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler