summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorsimonpj <unknown>2004-12-21 12:23:03 +0000
committersimonpj <unknown>2004-12-21 12:23:03 +0000
commit79a8b87c0bd61d56b4cf45bd584c9174aab48e61 (patch)
treeba9661597d6e6ab2f9d939459fd11d279c26813a /docs
parentd673a348ba1a8c41e9eaeb255e0c43156d883526 (diff)
downloadhaskell-79a8b87c0bd61d56b4cf45bd584c9174aab48e61.tar.gz
[project @ 2004-12-21 12:22:22 by simonpj]
--------------------------------- Improve handling of lexically scoped type variables --------------------------------- If we have f :: T a -> a f (x :: T b) = ... then the lexically scoped variable 'b' should refer to the rigid type variable 'a', without any intervening wobbliness. Previously the in-scope type variables were always mutable TyVars, which were instantatiated to point to the type they were bound to; but since the advent of GADTs the intervening mutable type variable is a bad thing. Hence * In the type environment, ATyVar now carries a type * The call to refineTyVars in tc_pat on SigPatIn finds the types by matching * Then tcExtendTyVarEnv3 extends the type envt appropriately Rater a lot of huff and puff, but it's quite natural for ATyVar to contain a type. Various other small nomenclature changes along the way.
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions