[add SCRUTINIZED tag to type variables that are used in class constraints
John Meacham <john@repetae.net>**20060226050705] hunk ./E/FromHs.hs 90
-    f (TVar tv) = EVar (cvar tv)
+    f (TVar tv) = EVar (cvar [] tv)
hunk ./E/FromHs.hs 93
-    f (TForAll vs (_ :=> t)) = foldr EPi (f t) (map cvar vs)
+    f (TForAll vs (ps :=> t)) = foldr EPi (f t) (map (cvar $ freeVars ps) vs)
hunk ./E/FromHs.hs 97
-    cvar Tyvar { tyvarRef = Just {}, tyvarKind = k}= error "tyvar is metaref"
-    cvar (Tyvar _ n k _) = (tVr (lt n) (kind k))
+    cvar _ Tyvar { tyvarRef = Just {}, tyvarKind = k}= error "tyvar is metaref"
+    cvar fvs tv@Tyvar { tyvarName = n, tyvarKind = k }
+        | tv `elem` fvs = setProperty prop_SCRUTINIZED (tVr (lt n) (kind k))
+        | otherwise = tVr (lt n) (kind k)
hunk ./Info/Types.hs 63
+prop_SCRUTINIZED = toAtom "_SCRUTINIZED"