
#10996: family is treated as keyword in types even without TypeFamilies enabled -------------------------------------+------------------------------------- Reporter: oerjan | Owner: Type: bug | Status: new Priority: low | Milestone: Component: Compiler | Version: 7.10.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: GHC rejects | Test Case: type Test valid program | family = family Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by oerjan): `family` and `role` are really the same as `forall`: they can currently be used as `varid`s, even with their extensions enabled. The error is that they can ''never'' be used as `tyvarid`s. (I think my [comment:1 comment:1] applies to `role` as well, but not to `forall`, because `forall` can appear in places where an applied type constructor variable would fit.) However, `forall` actually ''does'' appear to be special cased. Without any extensions enabled: {{{ Prelude> type Test role = role <interactive>:2:11: parse error on input `role' Prelude> type Test forall = forall Prelude> }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10996#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler