Very confusing error message with -fprint-explicit-kinds
While trying to work out a type error I encountered the following,
compiler/utils/Binary.hs:607:59: error:
• Could not deduce: (~) * * arg *
from the context: (~) * k (arg -> res)
...
Note how in the first line (~)
is applied to four arguments whereas on the second it is applied to three. Presuambly this is due to the former being kind heterogeneous, so at very least I'd think that ~~
should be used here.
In general, it would be nice if we could make equalities a bit more readable, perhaps special-casing them in the pretty-printer as,
(a :: k) ~ (b :: k')