[GHC] #10056: Inconsistent precedence of ~

GHC ghc-devs at haskell.org
Sun Feb 1 17:30:35 UTC 2015


#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


More information about the ghc-tickets mailing list