[BugFix in wildcard intro 
martin.hofmann@uni-bamberg.de**20100811132059] hunk ./src/Syntax/Ppr.hs 121
-wildIntro (FunB f es) = FunB f (map (noDubl . intro) es)
+wildIntro (FunB f es) = FunB f (map intro es)
hunk ./src/Syntax/Ppr.hs 124
-        let unused = (nub (concatMap getVars ls)) \\ (getVars rs)
-            ls' = map (replW unused) ls
-        in (UnGuardEq ls' rs)
-    noDubl (UnGuardEq ls rs) = 
-        let dubl = groupByVar . indVarPos $ ls
-            ls' = replD dubl ls
-        in (UnGuardEq ls' rs)    
+        let dubls = dropOneEach . indVarPos . (map getVarPos) $ls
+            -- all positions of dublicate variables, but the last one
+            unusd = indVarPos $ 
+                    map (filter (\(t,_) -> not $ t `elem` (getVars rs))) $  
+                    map getVarPos $ ls                     
+            -- positions of all those varibales not occurring on the rhs
+            ls' =  (repl unusd) . (repl dubls) $ ls
+        in (UnGuardEq ls' rs)  
hunk ./src/Syntax/Ppr.hs 133
-    indVarPos l = nub $ concat $ zipWith (\al i -> (concatMap (tag i) al)) (map getVarPos l) [0..]
+    indVarPos l = nub $ concat $ zipWith (\al i -> concatMap (tag i) al) l [0..]
hunk ./src/Syntax/Ppr.hs 136
-    groupByVar l  = concat $ map init $ groupBy (on (==) fst) $ l
-    replW vs t = foldl (\t' v@(TVarE n ty) -> replaceTerm v (TWildE n ty) t' ) t vs        
-    replD ps t = foldl replDub t ps
-    replDub tl (TVarE n ty,(i,p)) = applyAtIndex tl i (applyAtPos (const $ TWildE n ty) p)
-    -- (\(TVarE n ty) -> TWildE n ty) p t')
+    dropOneEach = concat . (map init) . (groupBy (on (==) fst))
+    repl ps t = foldl replW t ps
+    replW tl (TVarE n ty,(i,p)) = applyAtIndex tl i (applyAtPos (const $ TWildE n ty) p)
+    -- replace variable at position 'p' by wildcard