[GHC] #10928: Refine pattern synonym signatures
GHC
ghc-devs at haskell.org
Tue Oct 27 14:02:59 UTC 2015
#10928: Refine pattern synonym signatures
-------------------------------------+-------------------------------------
Reporter: mpickering | Owner:
Type: bug | Status: new
Priority: highest | Milestone: 8.0.1
Component: Compiler | Version: 7.10.2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: Other | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by goldfire):
While we're changing the parser, we should make sure that explicit
quantification is allowed. For example,
{{{
pattern P :: forall a b. ... => forall c d. ... => ....
}}}
should introduce `a` and `b` as universals, and `c` and `d` as
existentials. The existentials should scope over the provided constraints
and the arguments, but not the result. The universals scope over the whole
shebang.
These should also be made available as scoped type variables in the
pattern definition. There are four places where these variables might be
in scope, labeled below:
{{{
pattern P = (1)
pattern P <- (2)
pattern P (3) ...
... where P = (4)
}}}
The universals should be in scope everywhere. The existentials should be
in scope only in `(3)` and `(4)`, I believe, but I'm really quite unsure.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10928#comment:26>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list