[GHC] #15457: (~) and (!) are parsed inconsistently in types (plus documentation warts)
GHC
ghc-devs at haskell.org
Thu Oct 4 13:28:32 UTC 2018
#15457: (~) and (!) are parsed inconsistently in types (plus documentation warts)
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner: int-index
Type: bug | Status: new
Priority: normal | Milestone: 8.8.1
Component: Compiler | Version: 8.4.3
(Parser) |
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D5180
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by Ryan Scott <ryan.gl.scott@…>):
In [changeset:"bd7898537768f936d05c0c83eef1cd9b00933347/ghc"
bd789853/ghc]:
{{{
#!CommitTicketReference repository="ghc"
revision="bd7898537768f936d05c0c83eef1cd9b00933347"
Parse the (!) type operator and allow type operators in existential
context
Summary:
Improve the way `(!)`, `(~)`, and other type operators are handled in the
parser,
fixing two issues at once:
1. `(!)` can now be used as a type operator
that respects fixity and precedence (#15457)
2. Existential context of a data constructor
no longer needs parentheses (#15675)
In addition to that, with this patch it is now trivial to adjust
precedence of
the `{-# UNPACK #-}` pragma, as suggested in
https://ghc.haskell.org/trac/ghc/ticket/14761#comment:7
There was a small change to API Annotations. Before this patch, `(~)` was
a
strange special case that produced an annotation unlike any other type
operator. After this patch, when `(~)` or `(!)` are used to specify
strictness they
produce AnnTilde and AnnBang annotations respectively, and when they are
used
as type operators, they produce no annotations.
Test Plan: Validate
Reviewers: simonpj, bgamari, alanz, RyanGlScott
Reviewed By: RyanGlScott
Subscribers: RyanGlScott, rwbarton, mpickering, carter
GHC Trac Issues: #15457, #15675
Differential Revision: https://phabricator.haskell.org/D5180
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15457#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list