#10056: Inconsistent precedence of ~ -------------------------------------+------------------------------------- Reporter: crockeea | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.4 (Parser) | Keywords: Resolution: | Architecture: Operating System: Unknown/Multiple | Unknown/Multiple Type of failure: GHC rejects | Test Case: valid program | Blocking: Blocked By: | Differential Revisions: Related Tickets: | -------------------------------------+------------------------------------- Comment (by crockeea): Replying to [comment:1 htebalaka]:
I ''thought'' that infix type operators took the same precedence as their value level versions
I'm not sure what you mean by "value level versions". Surely you wouldn't expect the precedence of your type family `(+) :: * -> * -> *` be related in any way to the function `(+) :: (Num a) :: a -> a -> a`. If I set up two type families {{{!#hs type family Foo a b type family a \\ b infixr 9 \\ }}} we can ask GHCi
`:kind 'Int \\ Int 'Foo' Int` (can't figure out how to put backticks on Foo here)
and it will complain that I can't mix an `infixr 9 \\` with `infixl 9 'Foo`, so this indicates that the infix version of `Foo` has the same precedence as the prefix version. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10056#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler