[reduce monad stack in Matching.abduceIO
Helmut Grohne <grohne@cs.uni-bonn.de>**20150312164845
 Ignore-this: a987c1b8daab445bf72a93c24a055de9
 
 Speeds up test suite by 1%.
] hunk ./src/Igor2/RuleDevelopment/Matching.hs 335
-makeIOMatrix cllrs o tgtrs =
-    sequence [ liftM catMaybes $ sequence [abduceIO c o t | t <- tgtrs ] | c <- cllrs]
-        where sequence :: [IM a] -> IM [a]
+makeIOMatrix cllrs o tgtrs = do
+    patcomp <- getPatComparison
+    lift $ sequence [ liftM catMaybes $ sequence [abduceIO patcomp c o t | t <- tgtrs ] | c <- cllrs]
+        where sequence :: [LM a] -> LM [a]
hunk ./src/Igor2/RuleDevelopment/Matching.hs 347
-abduceIO :: CovrRule -> Ordering -> CovrRule -> IM (Maybe (Ordering, ArgList Rule))
-abduceIO cll maxcallrel tgt = do
-    comp <- getPatComparison
-    let callrel = on comp (lhs.crul) tgt cll
+abduceIO :: (LHS -> LHS -> Ordering) -> CovrRule -> Ordering -> CovrRule -> LM (Maybe (Ordering, ArgList Rule))
+abduceIO comp cll maxcallrel tgt = do
+    let callrel = on comp (lhs . crul) tgt cll
hunk ./src/Igor2/RuleDevelopment/Matching.hs 357
-       else do s <- lift . lift $ (liftM Just $ (matchesRhs `on` crul) cll tgt) `catchError`
+       else do s <- lift $ (liftM Just $ (matchesRhs `on` crul) cll tgt) `catchError`