Re: explicitly mentioning type variables using 'forall'. Your objection has
been noted and I'll refrain from removing redundant foralls unless I have to
re-write the type signature anyway. I think you said something like this
before in a patch review but I believe this patch still predates that
previous remark.
Your argument is valid, no question about that. But it is also true that
explicit 'forall' adds noise and therefore makes it harder to read/understand
code at a glance. It also adds extra overhead during refactors: Turn a pair
(p :> q) into two arguments, bang, type error because you forgot to
explicitly list the intermediate wXYZ. (It would be okay if this were only a
warning, but it's an error.) I am not the first to note that
ScopedTypeVariables are not a well-designed feature.
|