[BUGFIX in computing openPositions
martin.hofmann@uni-bamberg.de**20090513120020] hunk ./src/Data/IOData.hs 105
+    -- Debugging
+    check n = if n == (mkName "fun1") 
+                then trace $ show (text "Fun1" <^> 
+                                 vsep (map (\r -> (pretty. lhs $ r) <+> 
+                                                   text "=" <+> (pretty.rhs $ r)) 
+                                           (S.toList rs)) <$>
+                                 pretty (rhs.unLM $ antiunifyRules (S.toList rs)))
+                else id 
hunk ./src/Data/IOData.hs 236
-modifycrul rf@(RF _ f _ o ) g =  rf{crul= g f, opos= openPositions (g f)}
+modifycrul rf@(RF _ f _ o ) g = 
+    let f' = g f 
+    in rf{crul= f', opos= openPositions f'}
hunk ./src/Data/Rules.hs 82
-type OpenPos = (TExp,[Position])
+type OpenPos = (TExp,Position)
hunk ./src/Data/Rules.hs 88
-    let lhsvars = nub $ concatMap getVarNames $ lhs r
-        rhsvars = nub.getVarNames.rhs $ r
-        diff    = rhsvars \\ lhsvars
-    in map (toVar (rhs r)) diff
+    let lhsvars = nub $ concatMap getVars $ lhs r
+        rhsvars = nub.getVars.rhs $ r
+    in rhsvars \\ lhsvars
hunk ./src/Data/Rules.hs 96
-openPositions r = map (openPos r) (freeVars r)
+openPositions r = 
+    concatMap (openPos r) (freeVars r)
hunk ./src/Data/Rules.hs 99
-    openPos r e = (e, getPos (rhs r) e)
+    openPos r e = map ((,) e) $ getPos (rhs r) e
hunk ./src/RuleDevelopment.hs 14
-import Debug.Trace
hunk ./src/RuleDevelopment/Subfunction.hs 11
-import Debug.Trace
hunk ./src/RuleDevelopment/Subfunction.hs 27
+    --let novarpos = map (Body . snd) $ filter (directlyBelowRoot.snd) $ opos cr
hunk ./src/RuleDevelopment/Subfunction.hs 46
+    directlyBelowRoot = (\p -> (p > Root) && p < (0°0°Root))
hunk ./src/Syntax/Expressions.hs 404
-    aunify l@((TListE _ ty@(AppT _ ety)):xs) =
+    aunify ts@((TListE _ lty@(AppT _ ety)):xs) =
hunk ./src/Syntax/Expressions.hs 408
-        case collectSubtermsTE l of            
+        case collectSubtermsTE ts of            
hunk ./src/Syntax/Expressions.hs 412
-                  then return $ TListE [] ty
+                  then return $ TListE [] lty
hunk ./src/Syntax/Expressions.hs 414
-                        [e,TListE l ty] -> return $ TListE (e:l) ty
-                        _owise          -> do 
-                            let tcone = TConE (mkName ":") (mkArrowT [ety, ty, ty]) 
+                        [e,TListE l _] -> return $ TListE (e:l) lty
+                        _owise         -> do 
+                            let tcone = TConE (mkName ":") (mkArrowT [ety, lty, lty]) 
hunk ./src/Syntax/Expressions.hs 442
-                computeAntiInstance l 
+                computeAntiInstance ts
hunk ./src/Syntax/Terms.hs 36
-    deriving( Eq, Ord )
+    deriving( Eq )
hunk ./src/Syntax/Terms.hs 38
+instance Ord Position where
+    compare Root Root = EQ
+    compare Root _    = LT
+    compare _ Root    = GT
+    compare (Dot i p) (Dot i' p')
+        | p == p'    = compare i i'
+        | otherwise  = compare p p'
+        
hunk ./src/Syntax/Terms.hs 57
+
+
hunk ./src/Syntax/Terms.hs 60
-infixl 5 °
+infixr 5 °
hunk ./src/SynthesisEngine.hs 22
-_MaxLoopCount = 20
+_MaxLoopCount = 50
hunk ./src/SynthesisEngine.hs 102
-    if nocandidates  || maxloopcount
+    if nocandidates  -- || maxloopcount