
| just one more problem is that this issue is too complicated. i'm not | sure that i correctly understands details, but for me the situation | seems like this: in 6.4 it was no distinction between declarations and | usages of type variables - first use declared it, while in 6.6 we have | exactly defined places to declare type variable. No, that's not right. In 6.4 it was absolutely nailed down exactly where a lexical type variable was *bound* and where it was *used*. Identifying the site where it comes into scope isn't the problem. However, 6.4 allowed you to bring into scope a lexical type variable that was a name for an existing type. Whereas 6.6 brings into scope a lexical type variable only at places where the type variable it names is being quantified. Yes, it's confusing! Simon