
#9097: Change GHC.Exts.Any to a type family -------------------------------------------------+------------------------- Reporter: goldfire | Owner: Type: task | goldfire Priority: high | Status: Component: Compiler | closed Resolution: fixed | Milestone: Operating System: Unknown/Multiple | 7.10.1 Type of failure: None/Unknown | Version: 7.8.2 Test Case: indexed- | Keywords: types/should_fail/T9097 | Architecture: Blocking: | Unknown/Multiple | Difficulty: | Unknown | Blocked By: | Related Tickets: -------------------------------------------------+------------------------- Comment (by goldfire): You're absolutely right that the diffs don't cover this -- that's because the explanation was already there: {{{ Note [Any types] ~~~~~~~~~~~~~~~~ The type constructor Any of kind forall k. k has these properties: ... * It is a *closed* type family, with no instances. This means that if ty :: '(k1, k2) we add a given coercion g :: ty ~ (Fst ty, Snd ty) If Any was a *data* type, then we'd get inconsistency because 'ty' could be (Any '(k1,k2)) and then we'd have an equality with Any on one side and '(,) on the other. See also #9097. ... }}} It seems that this comment was left when you reverted the last time you made this change. Well, it's now correct again. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9097#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler