[assured that every ue of 'getVars' deals with unique list of vars
martin.hofmann@uni-bamberg.de**20100108081754] hunk ./src/Igor2/RuleDevelopment/ListCata.hs 193
-    let usedVarInd = findIndices (flip elem (getVars v)) (lhs . crul $ cr)
+    let usedVarInd = findIndices (flip elem (nub $ getVars v)) (lhs . crul $ cr)
hunk ./src/Syntax/Class/Term.hs 18
-    subtermAt, subtermOf, sameSymAt, getVarPos, hasVars, getVars, getPos, varAtPos,
-    getVarNames, substitute, replaceTerm,
+    subtermAt, subtermOf, sameSymAt, getVarPos, hasVars, getVars, getVars',
+    getPos, varAtPos, getVarNames, substitute, replaceTerm,
hunk ./src/Syntax/Class/Term.hs 187
-getVarPos t     =  [(st,getPos t st) | st <- (getVars t)]
+getVarPos t     =  [(st,getPos t st) | st <- (getVars' t)]
hunk ./src/Syntax/Class/Term.hs 191
-getVars t
+getVars = L.nub . getVars'
+    
+-- |Returns a list of all variables in t
+getVars'         :: (Term t) => t -> [t]
+getVars' t
hunk ./src/Syntax/Class/Term.hs 197
-    | otherwise = L.nub $ concatMap getVars $ subterms t
+    | otherwise = concatMap getVars' $ subterms t
hunk ./src/Syntax/Ppr.hs 9
-import Data.List (sortBy,isPrefixOf, stripPrefix, (\\))
+import Data.List (sortBy,isPrefixOf, stripPrefix, (\\), nub, groupBy)