[move and rename traverseHsType
John Meacham <john@repetae.net>**20060408005817] hunk ./FrontEnd/HsErrors.hs 14
+import FrontEnd.Syn.Traverse
hunk ./FrontEnd/HsErrors.hs 26
-hsType x = mapHsTypeHsType (\x -> hsType x >> return x) x >> return ()
+hsType x = traverseHsType (\x -> hsType x >> return x) x >> return ()
hunk ./FrontEnd/HsErrors.hs 48
-
---derivable = [ "Eq","Ord","Enum","Bounded","Show","Read" ]
-
hunk ./FrontEnd/HsErrors.hs 52
-
-
-mapHsTypeHsType f (HsTyFun a b) = do
-    a <- f a
-    b <- f b
-    return $ HsTyFun a b
-mapHsTypeHsType f (HsTyTuple xs) = do
-    xs <- mapM f xs
-    return $ HsTyTuple xs
-mapHsTypeHsType f (HsTyApp a b) = do
-    a <- f a
-    b <- f b
-    return $ HsTyApp a b
-mapHsTypeHsType f (HsTyForall vs qt) = do
-    x <- f $ hsQualTypeType qt
-    return $ HsTyForall vs qt { hsQualTypeType = x }
-mapHsTypeHsType f (HsTyExists vs qt) = do
-    x <- f $ hsQualTypeType qt
-    return $ HsTyExists vs qt { hsQualTypeType = x }
-mapHsTypeHsType _ x = return x
-
hunk ./FrontEnd/Syn/Traverse.hs 7
+traverse_ :: Monad m => (a -> m b) -> a -> m a
+traverse_ fn x = fn x >> return x
hunk ./FrontEnd/Syn/Traverse.hs 12
-traverseHsExp_ fn e = traverseHsExp (\e -> fn e >> return e) e >> return ()
+traverseHsExp_ fn e = traverseHsExp (traverse_ fn) e >> return ()
hunk ./FrontEnd/Syn/Traverse.hs 129
+
+traverseHsType f (HsTyFun a b) = do
+    a <- f a
+    b <- f b
+    return $ HsTyFun a b
+traverseHsType f (HsTyTuple xs) = do
+    xs <- mapM f xs
+    return $ HsTyTuple xs
+traverseHsType f (HsTyApp a b) = do
+    a <- f a
+    b <- f b
+    return $ HsTyApp a b
+traverseHsType f (HsTyForall vs qt) = do
+    x <- f $ hsQualTypeType qt
+    return $ HsTyForall vs qt { hsQualTypeType = x }
+traverseHsType f (HsTyExists vs qt) = do
+    x <- f $ hsQualTypeType qt
+    return $ HsTyExists vs qt { hsQualTypeType = x }
+traverseHsType _ x = return x
+
+
+
hunk ./FrontEnd/TypeSynonyms.hs 20
-import FrontEnd.HsErrors
+import FrontEnd.Syn.Traverse
hunk ./FrontEnd/TypeSynonyms.hs 25
+import MapBinaryInstance
hunk ./FrontEnd/TypeSynonyms.hs 54
-    fv x = mapHsTypeHsType (\x -> fv x >> return x) x >> return ()
+    fv x = traverseHsType (\x -> fv x >> return x) x >> return ()
hunk ./FrontEnd/TypeSynonyms.hs 69
-        t <- mapHsTypeHsType (eval []) x
+        t <- traverseHsType (eval []) x
hunk ./FrontEnd/TypeSynonyms.hs 77
-        let nvs = [ (hsTyVarBindName v,v { hsTyVarBindName = hsNameIdent_u (hsIdentString_u ((show n ++ "00") ++)) (hsTyVarBindName v)})| (n,v) <- zip ns vs ] 
+        let nvs = [ (hsTyVarBindName v,v { hsTyVarBindName = hsNameIdent_u (hsIdentString_u ((show n ++ "00") ++)) (hsTyVarBindName v)})| (n,v) <- zip ns vs ]
hunk ./FrontEnd/TypeSynonyms.hs 83
-        let nvs = [ (hsTyVarBindName v,v { hsTyVarBindName = hsNameIdent_u (hsIdentString_u ((show n ++ "00") ++)) (hsTyVarBindName v)})| (n,v) <- zip ns vs ] 
+        let nvs = [ (hsTyVarBindName v,v { hsTyVarBindName = hsNameIdent_u (hsIdentString_u ((show n ++ "00") ++)) (hsTyVarBindName v)})| (n,v) <- zip ns vs ]
hunk ./FrontEnd/TypeSynonyms.hs 88
-    subst sm t = mapHsTypeHsType (subst sm) t
+    subst sm t = traverseHsType (subst sm) t