[GHC] #11307: Regresssion: parsing type operators

GHC ghc-devs at haskell.org
Wed Dec 30 14:38:17 UTC 2015


#11307: Regresssion: parsing type operators
-------------------------------------+-------------------------------------
        Reporter:  alanz             |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.0.1
       Component:  Compiler          |              Version:  7.11
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by goldfire):

 I think the change from 7.10 to HEAD is an improvement, because 7.10 is
 illogical with regard to these shenanigans.

 This is accepted:

 {{{#!hs
 {-# LANGUAGE TypeFamilies, TypeOperators #-}

 module Parse where

 type family a :++: b
 infix 5 :++:

 data a :> b
 infix 2 :>

 type instance Int :++: Char :> Bool = Double
 }}}

 But in that `type instance`, the `:++:` should really bind tighter, making
 an instance declaration for `:>`, which is hogwash of course. So 7.10 is
 ignoring fixities altogether and just looking for the first operator.

 Better still would be Simon's suggestion, but I'm inclined to call this
 new behavior a feature, not a bug.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11307#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list