
#15235: GHCi's claim of infixr 0 (->) is a lie -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.8.1 Component: Compiler | Version: 8.4.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #15236 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): Changing GHCi's fixity information for `(->)` is a simple matter of applying this change: {{{#!diff diff --git a/compiler/basicTypes/BasicTypes.hs b/compiler/basicTypes/BasicTypes.hs index 93010b7..e9d32f6 100644 --- a/compiler/basicTypes/BasicTypes.hs +++ b/compiler/basicTypes/BasicTypes.hs @@ -409,7 +409,7 @@ defaultFixity = Fixity NoSourceText maxPrecedence InfixL negateFixity, funTyFixity :: Fixity -- Wired-in fixities negateFixity = Fixity NoSourceText 6 InfixL -- Fixity of unary negate -funTyFixity = Fixity NoSourceText 0 InfixR -- Fixity of '->' +funTyFixity = Fixity NoSourceText (-1) InfixR -- Fixity of '->' {- Consider }}} However, there's one more question we should answer before applying this change: do we want the displayed `:info` output to be this: {{{ infixr -1 -> }}} Or this? {{{ infixr (-1) -> }}} With only the above change, `:info` will display the former. If we want the latter, we'd have to make additional changes to the pretty-printer output for fixity information to add parentheses. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15235#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler