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:
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 . For example, should '((a :: *)@R)' be a correct annotation?
Related (?) ticket: #8185 (closed)