[Fix bug in E.Subst.
Lemmih <lemmih@gmail.com>**20080223140047] hunk ./E/Subst.hs 172
-        let i' = mnv allShadow xs i s ss
+        let i' = mnv allShadow xs i check s ss
hunk ./E/Subst.hs 178
-mnv :: Bool -> Set.Set Id -> Id -> Set.Set Id -> IdMap a -> Id
-mnv allShadow xs i s ss
-    | allShadow = newId (Set.size xs + Set.size s + size ss) scheck
-    | isInvalidId i || not (scheck i) = newId (Set.size xs + Set.size s + size ss) check
+mnv :: Bool -> Set.Set Id -> Id -> (Id -> Bool) -> Set.Set Id -> IdMap a -> Id
+mnv allShadow xs i checkTaken s ss
+    | allShadow = newId (Set.size xs + Set.size s + size ss) (not . scheck)
+    | isInvalidId i || scheck i = newId (Set.size xs + Set.size s + size ss) (not . check)
hunk ./E/Subst.hs 184
-    where scheck n = n `mnotMember` ss && n `notMember` s
-          check n = scheck n && n `notMember` xs
+    where scheck n = n `mmember` ss || n `member` s || checkTaken n
+          check n = scheck n || n `member` xs
hunk ./E/Subst.hs 289
-        let i' = mnv False xs i Set.empty map
+        let i' = mnv False xs i (\_ -> False) Set.empty map