Hello everyone,
A couple of days ago I tried to
implement type level warnings [1]. I have got something
now that sort of works but issues the
same warning multiple times and not on the correct
location. It's currently a WIP merge
request [2]. I would like some help/pointers
to continue the implementation
The approach I have taken is to issue
the warning once TypeWarning is rewritten.
However, this has severe problems
since now a warning is issued multiple times and
at different locations due to the rewriting happening multiple times.
I don't know
what the best location is to do this
check and issue the warning. Prior to
constraint solving isn't a good place
since the TypeWarning could be nested
deeply in some constraint. Afterwards
also isn't doable since then the
TypeWarning constraint is gone.
An alternative could be to not implement
any instance in for TypeWarning
similar to TypeError and special case it
somehow.
Any help is appreciated!
[1]
https://gitlab.haskell.org/ghc/ghc/issues/17027
[2]
https://gitlab.haskell.org/ghc/ghc/merge_requests/2361
Best regards,
Rowan Goemans