Role annotations does not allow the use of parenthesis
There is an inconsistency in roles/kinds annotations wrt parenthesis.
For example, the following code compiles just fine
data A (a::*) = A
unlike this code
data A (a@R) = A
which results in a compilation error:
Unexpected type a@R' where type variable expected In the declaration of
A (a@R)'
As Austin Seipp has pointed out, it boils down to simply: 'data A (a) = A'
This also prompts for further discussion about role annotations in presence of kind annotations [1]. For example, should '((a :: *)@R)' be a correct annotation?
Related (?) ticket: #8185 (closed)
Trac metadata
Trac field | Value |
---|---|
Version | 7.7 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Parser) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |