Open sighingnow opened 6 years ago
This comment was wrong.
At the type level you can't disambiguate between for multiple and for the kind before renaming so any solution will be an approximation.
To be precise, how do you propose dealing with parsing Foo * Int
?
In the example I post above, the *
in Prelude.*
should be parsed as a qualified operator, both in term level or in type level. But when KindSignatures
is enabled, we got the unqualified result.
At type level, we cannot determine a single *
is multiplication or kind, but this problem doesn't exist in term-level. The qualified Prelude.*
should not be parsed two unqualified operators as (Con (UnQual (Ident "Prelude")))) (QVarOp (UnQual (Symbol ".*")))
.
That doesn’t answer the question at all.
The correct solution is to stop lexing * as a special character but in order to do so we must answer the question I posed in my previous comment.
When extension
KindSignatures
enabled, qualified multiplication operator in expression (term level) get wrong result.Version: haskell-src-exts-1.19.0
Related: #79 , #298 , #359