[add MonadLog class to get rid of llog* and friends
Helmut Grohne <grohne@cs.uni-bonn.de>**20140717145205
 Ignore-this: fe9fdbcb5eba43a5adae97e7df2c1608
] hunk ./src/Igor2/Logging/Logger.hs 11
-    waypointS', waypointM', waypointL',
hunk ./src/Igor2/Logging/Logger.hs 12
-    llogDE,llogIN,llogNO,llogWA,llogER,
-    -- llogEnterDE, llogEnterIN,
hunk ./src/Igor2/Logging/Logger.hs 53
+class Monad m => MonadLog m where
+  handle :: LogEntry -> m ()
+
hunk ./src/Igor2/Logging/Logger.hs 57
-       
-logDE,logIN,logNO,logWA,logER ::  Doc -> LM ()        
+
+logDE,logIN,logNO,logWA,logER :: MonadLog m => Doc -> m ()
hunk ./src/Igor2/Logging/Logger.hs 65
-llogDE,llogIN,llogNO,llogWA,llogER ::  ( MonadTrans t) =>  Doc -> t LM ()        
-llogDE = lift . logDE
-llogIN = lift . logIN
-llogNO = lift . logNO
-llogWA = lift . logWA
-llogER = lift . logER
-    
-waypointS' s = logNO $ linebreak <> text "- -" <$> 
-               text "- -" <+> s <$> 
-               text "- -" <> linebreak
-waypointM' s = logNO $ linebreak <> 
-               text "- - - - - - - - - - - - - - - - - - - - - - - -" <$> 
-               text "- -" <+> s <+> (fill 39 (text "- -")) <$>
-               text "- - - - - - - - - - - - - - - - - - - - - - - -" <>
-               linebreak
-waypointL' s = logNO $ linebreak <> 
-               text "***********************************************" <$> 
-               text "***" <+> s <+> (fill 39 (text "***")) <$>
-               text "***********************************************"  <>
-               linebreak
-              
-llogEnterDE, llogEnterIN :: (MonadTrans t) => t LM ()           
-llogEnterDE = lift logEnterDE
-llogEnterIN = lift logEnterIN
-
-waypointS, waypointM, waypointL :: (MonadTrans t) => Doc -> t LM ()
-waypointS = lift . waypointS'
-waypointM = lift . waypointM'
-waypointL = lift . waypointL'
+instance MonadLog m => MonadLog (StateT a m) where
+  handle = lift . handle
hunk ./src/Igor2/Logging/Logger.hs 68
+waypointS, waypointM, waypointL :: MonadLog m => Doc -> m ()
+waypointS s = logNO $ linebreak <> text "- -" <$>
+              text "- -" <+> s <$>
+              text "- -" <> linebreak
+waypointM s = logNO $ linebreak <>
+              text "- - - - - - - - - - - - - - - - - - - - - - - -" <$>
+              text "- -" <+> s <+> fill 39 (text "- -") <$>
+              text "- - - - - - - - - - - - - - - - - - - - - - - -" <>
+              linebreak
+waypointL s = logNO $ linebreak <>
+              text "***********************************************" <$>
+              text "***" <+> s <+> fill 39 (text "***") <$>
+              text "***********************************************"  <>
+              linebreak
hunk ./src/Igor2/Logging/Logger.hs 83
-logEnterDE, logEnterIN :: LM ()         
+logEnterDE, logEnterIN :: MonadLog m => m ()
hunk ./src/Igor2/Logging/Logger.hs 86
- 
-logEntered :: Priority -> LM ()           
-logEntered = flip logging $ text "\n - - - - - - Function entered - - - - - - "
hunk ./src/Igor2/Logging/Logger.hs 87
-llogEntered :: (MonadTrans t) =>  Priority -> t LM ()           
-llogEntered = lift . logEntered 
+logEntered :: MonadLog m => Priority -> m ()
+logEntered = flip logging $ text "\n - - - - - - Function entered - - - - - - "
hunk ./src/Igor2/Logging/Logger.hs 109
-logging :: Priority -> Doc -> LM ()
+logging :: MonadLog m => Priority -> Doc -> m ()
hunk ./src/Igor2/Logging/Logger.hs 112
-
-handle :: LogEntry -> LM ()
-handle le@(LE p msg) = ELT $
-    liftM2 (||) isDumping isVerbose >>=
-    flip when ( 
-        liftM ((<=)p) getPriority >>=
-        flip when (
-            isVerbose >>= flip when (liftIO . putStrLn . show $ msg) >>
-            isDumping >>= flip when ( tell . newLog $ le)))
+instance MonadIO m => MonadLog (ELT m) where
+  handle le@(LE p msg) = ELT $
+      liftM2 (||) isDumping isVerbose >>=
+      flip when (
+          liftM (p <=) getPriority >>=
+          flip when (
+              isVerbose >>= flip when (liftIO . print $ msg) >>
+              isDumping >>= flip when ( tell . newLog $ le)))
hunk ./src/Igor2/RuleDevelopment.hs 22
-  
-  llogNO $ linebreak <> text "Advancing" <^> pretty r <$> 
+
+  logNO $ linebreak <> text "Advancing" <^> pretty r <$>
hunk ./src/Igor2/RuleDevelopment.hs 34
-  waypointS $ text "Summary"    
-  llogNO $ linebreak <>
-                  text "Advancing" <^> pretty r <$> 
-                  text "of" <+> pretty h <$> text "resulted in" <+> 
-                  int (length all) <+> text "new hypotheses." <> linebreak <$> 
+  waypointS $ text "Summary"
+  logNO $ linebreak <>
+                  text "Advancing" <^> pretty r <$>
+                  text "of" <+> pretty h <$> text "resulted in" <+>
+                  int (length all) <+> text "new hypotheses." <> linebreak <$>
hunk ./src/Igor2/RuleDevelopment/Cata.hs 31
-  llogNO $ text "Check if 'cata' applies to: " <^> pretty cr    
-    
+  logNO $ text "Check if 'cata' applies to: " <^> pretty cr
+
hunk ./src/Igor2/RuleDevelopment/Cata.hs 34
-  `catchError` 
-  (\e1 -> llogNO (text e1) >> (smsg (lstCataArgIs cr) >>= 
+  `catchError`
+  (\e1 -> logNO (text e1) >> (smsg (lstCataArgIs cr) >>=
hunk ./src/Igor2/RuleDevelopment/Cata.hs 38
-  \e2 -> llogNO (text e2) >> return []
-    
+  \e2 -> logNO (text e2) >> return []
+
hunk ./src/Igor2/RuleDevelopment/Cata.hs 41
-    gmsg i = llogNO ( linebreak <> 
+    gmsg i = logNO ( linebreak <>
hunk ./src/Igor2/RuleDevelopment/Cata.hs 43
-                      pretty i) >> return i                                       
-    smsg i = llogNO ( linebreak <> text "Try special catamorphism on lists for argument indices" <+>
-                      pretty i) >> return i  
-             
+                      pretty i) >> return i
+    smsg i = logNO ( linebreak <> text "Try special catamorphism on lists for argument indices" <+>
+                      pretty i) >> return i
+
hunk ./src/Igor2/RuleDevelopment/Cata.hs 51
-    llogNO $ text "Check if 'para' applies to: " <^> pretty cr    
-    
-    (tyMorphIdcs cr >>= return . ((lstCataArgIs cr)++) >>= 
+    logNO $ text "Check if 'para' applies to: " <^> pretty cr
+
+    (liftM (lstCataArgIs cr ++) (tyMorphIdcs cr) >>=
hunk ./src/Igor2/RuleDevelopment/Cata.hs 55
-    `catchError` 
-    \e2 -> llogNO (text e2) >> return []
-    
+    `catchError`
+    \e2 -> logNO (text e2) >> return []
+
hunk ./src/Igor2/RuleDevelopment/Cata.hs 59
-    gmsg i = llogNO ( linebreak <> 
+    gmsg i = logNO ( linebreak <>
hunk ./src/Igor2/RuleDevelopment/Cata.hs 65
-oneOrNone f (x:xs) = f x `catchError` \e -> llogNO (text e) >> oneOrNone f xs
+oneOrNone f (x:xs) = f x `catchError` \e -> logNO (text e) >> oneOrNone f xs
hunk ./src/Igor2/RuleDevelopment/Cata.hs 90
-  llogNO $ msg withP
+  logNO $ msg withP
hunk ./src/Igor2/RuleDevelopment/Cata.hs 130
-     let clls = map  (\mfn -> (name cr',mfn, EQ)) mfns 
-     llogNO $ text "Generic" <+> text morphStr <+> 
+     let clls = map  (\mfn -> (name cr',mfn, EQ)) mfns
+     logNO $ text "Generic" <+> text morphStr <+>
hunk ./src/Igor2/RuleDevelopment/Cata.hs 133
-     llogDE $ text "With partitions" <+> pretty parts
+     logDE $ text "With partitions" <+> pretty parts
hunk ./src/Igor2/RuleDevelopment/ListCata.hs 28
-    catchError (checkUniPropAndMkIOs i evi >>= mkFoldCall i cr) 
-               (\e -> llogNO (text $ "No fold: " ++  e) >> naiveMap i cr evi)
+    catchError (checkUniPropAndMkIOs i evi >>= mkFoldCall i cr)
+               (\e -> logNO (text $ "No fold: " ++  e) >> naiveMap i cr evi)
hunk ./src/Igor2/RuleDevelopment/ListCata.hs 52
-      else do llogNO (text "Naive map detected!")
+      else do logNO (text "Naive map detected!")
hunk ./src/Igor2/RuleDevelopment/ListCata.hs 87
-            if  not (filterApplicable f fio tio) then Nothing 
-              else Just $ do 
-                llogNO (text "ListCata applicable for argument" <+> int i <+> text ", 'filter' detected!")
+            if  not (filterApplicable f fio tio) then Nothing
+              else Just $ do
+                logNO (text "ListCata applicable for argument" <+> int i <+> text ", 'filter' detected!")
hunk ./src/Igor2/RuleDevelopment/ListCata.hs 126
-        llogNO (text "ListCata applicable for argument" <+> int i <+> text ", 'map' detected!")
+        logNO (text "ListCata applicable for argument" <+> int i <+> text ", 'map' detected!")
hunk ./src/Igor2/RuleDevelopment/ListCata.hs 195
-    
-    llogNO (text "ListCata applicable for argument" <+> int i <+> text ", fallback to 'foldr'!")
-    afnm  <- addIO . rules . (map (rmArgsAt usedVarInd)) $ ios
+
+    logNO (text "ListCata applicable for argument" <+> int i <+> text ", fallback to 'foldr'!")
+    afnm  <- addIO . rules . map (rmArgsAt usedVarInd) $ ios
hunk ./src/Igor2/RuleDevelopment/Matching.hs 37
-    llogIN ( text "Try for:" <^> (pretty $ cr))
-    llogDE ( text "Call Dependencies:" <^> pretty cd )
-    llogDE ( text "scope:" <^> pretty scope )
-    llogDE ( text "bgkcalls:" <^> pretty bgkcalls )
-    llogDE ( text "tgtcalls:" <^> pretty tgtcalls )
-    llogDE ( text "Allowed calls:" <^> pretty allcalls)
+    logIN ( text "Try for:" <^> pretty cr)
+    logDE ( text "Call Dependencies:" <^> pretty cd )
+    logDE ( text "scope:" <^> pretty scope )
+    logDE ( text "bgkcalls:" <^> pretty bgkcalls )
+    logDE ( text "tgtcalls:" <^> pretty tgtcalls )
+    logDE ( text "Allowed calls:" <^> pretty allcalls)
hunk ./src/Igor2/RuleDevelopment/Matching.hs 52
-    llogDE (indent 2 $ text "(-) Not allowed to call" <+> (squotes.text.show $ n)) >>
+    logDE (indent 2 $ text "(-) Not allowed to call" <+> (squotes.text.show $ n)) >>
hunk ./src/Igor2/RuleDevelopment/Matching.hs 56
-     if (not.null $ dcp)
-        then do llogIN (linebreak <>
+     if not (null dcp)
+        then do logIN (linebreak <>
hunk ./src/Igor2/RuleDevelopment/Matching.hs 73
-     llogIN (linebreak <>
+     logIN (linebreak <>
hunk ./src/Igor2/RuleDevelopment/Matching.hs 77
-     llogDE ((align $ text "Caller:" <+> pretty cllrs ) <$>
-             (align $ text "Target:" <+> pretty tgtrs ))
-     
-     -- This is important. due to polymorphism functions like 'last' in 
-     -- background knowledge would match everything. For those functions only 
+     logDE (align (text "Caller:" <+> pretty cllrs) <$>
+             align (text "Target:" <+> pretty tgtrs))
+
+     -- This is important. due to polymorphism functions like 'last' in
+     -- background knowledge would match everything. For those functions only
hunk ./src/Igor2/RuleDevelopment/Matching.hs 87
-     cancel    =  llogIN(--text "<Stopped by laziness!>" <$>
+     cancel    =  logIN(--text "<Stopped by laziness!>" <$>
hunk ./src/Igor2/RuleDevelopment/Matching.hs 91
-     proceed m = do llogDE (text "Matchings" <$> (pretty $ map ((map pretty)) m))
+     proceed m = do logDE (text "Matchings" <$> pretty (map (map pretty) m))
hunk ./src/Igor2/RuleDevelopment/Matching.hs 94
-     stop = llogIN (text "Caller or Target has variable on rhs. Would compute too many matchings") >>
-            return []                    
+     stop = logIN (text "Caller or Target has variable on rhs. Would compute too many matchings") >>
+            return []
hunk ./src/Igor2/RuleDevelopment/Matching.hs 175
-    llogDE (text "Call possible:" <^>  (pretty cr') <+> (pretty call))
+    logDE (text "Call possible:" <^> pretty cr' <+> pretty call)
hunk ./src/Igor2/RuleDevelopment/Matching.hs 182
-    let call = ((name cr),tgtn, o)
-    llogDE (text "Call possible:" <^>  (pretty cr') <+> (pretty call))
+    let call = (name cr, tgtn, o)
+    logDE (text "Call possible:" <^> pretty cr' <+> pretty call)
hunk ./src/Igor2/RuleDevelopment/Matching.hs 223
-       llogDE (indent 2 $
+       logDE (indent 2 $
hunk ./src/Igor2/RuleDevelopment/Matching.hs 232
-               llogDE (indent 2 $
-                       (if (isJust s) then text "(+)" else text "(-)") <+>
+               logDE (indent 2 $
+                       text (if isJust s then "(+)" else "(-)") <+>
hunk ./src/Igor2/RuleDevelopment/Partition.hs 45
-    llogIN ( text "Rule:" <+> pretty cr )
-    llogDE ( text "At  :" <+> pretty pivotpos <^>
+    logIN ( text "Rule:" <+> pretty cr )
+    logDE ( text "At  :" <+> pretty pivotpos <^>
hunk ./src/Igor2/RuleDevelopment/Partition.hs 51
---    llogIN (text "Partition with" <+> pretty ps <^>
+--    logIN (text "Partition with" <+> pretty ps <^>
hunk ./src/Igor2/RuleDevelopment/Subfunction.hs 20
-      else llogIN (text "No Ctor at Root, return []") >> 
+      else logIN (text "No Ctor at Root, return []") >>
hunk ./src/Igor2/RuleDevelopment/Subfunction.hs 33
-    
-    llogIN ( text "Rule_old:" <+> pretty cr <$>
+
+    logIN ( text "Rule_old:" <+> pretty cr <$>
hunk ./src/Igor2/RuleDevelopment/Subfunction.hs 36
-    llogDE ( text "abdcdIOs:" <+> pretty (zip subfnnms ios) <$>
+    logDE ( text "abdcdIOs:" <+> pretty (zip subfnnms ios) <$>
hunk ./src/Igor2/SynthesisEngine.hs 56
-    
-    waypointL' $ text "Initialising Igor"
+
+    waypointL $ text "Initialising Igor"
hunk ./src/Igor2/SynthesisEngine.hs 104
-      
-      loopCount >>= \lc -> waypointM $ 
-                          text "Entering Rule-Advancement-Loop for the" <+> 
-                               int (lc) <> text ". time"
-      llogNO . (text "#Hypos:" <+>) . pretty . countHypos $ hsp
-      llogDE . (text "HSpace:" <+>) . pretty $ hsp 
-    
-      getEvidence >>= \io -> llogDE ( linebreak <> 
-                                     text "IGOR initialised to:" <$> 
+
+      loopCount >>= \lc -> waypointM $
+                          text "Entering Rule-Advancement-Loop for the" <+>
+                               int lc <> text ". time"
+      logNO . (text "#Hypos:" <+>) . pretty . countHypos $ hsp
+      logDE . (text "HSpace:" <+>) . pretty $ hsp
+
+      getEvidence >>= \io -> logDE ( linebreak <>
+                                     text "IGOR initialised to:" <$>
hunk ./src/Igor2/SynthesisEngine.hs 120
-    
-      if atMxL then llogNO (text "MaxLoops reached") >> stopWith hypos
-       else if (any isFinished hypos) then finishTier hypos hsp'
+
+      if atMxL then logNO (text "MaxLoops reached") >> stopWith hypos
+       else if any isFinished hypos then finishTier hypos hsp'
hunk ./src/Igor2/SynthesisEngine.hs 136
-  llogNO (linebreak <> text "FINISHED HYPOS, finish Tier:") 
-  case (partition isFinished hypos) of
-    (f,[]) -> if atMxT 
-             then do llogNO (text "Maximum tiers reached!")
+  logNO (linebreak <> text "FINISHED HYPOS, finish Tier:")
+  case partition isFinished hypos of
+    (f,[]) -> if atMxT
+             then do logNO (text "Maximum tiers reached!")
hunk ./src/Igor2/SynthesisEngine.hs 141
-             else do llogNO (text "TIER FINISHED: Eject finished and continue!")
+             else do logNO (text "TIER FINISHED: Eject finished and continue!")
hunk ./src/Igor2/SynthesisEngine.hs 144
-             then do llogNO (text "Prune and finish tier.")
-                     continue uf $ (pushHypos f emptyHSpace)
-             else do llogNO (text "Continue with unfinished.") 
-                     continue uf $ (pushHypos f hsp)
-   -- if still unfinished hypos, 
+             then do logNO (text "Prune and finish tier.")
+                     continue uf (pushHypos f emptyHSpace)
+             else do logNO (text "Continue with unfinished.")
+                     continue uf (pushHypos f hsp)
+   -- if still unfinished hypos,
hunk ./src/Igor2/SynthesisEngine.hs 154
-        
-exhausted = llogNO( linebreak <> 
-                    text "SEARCHSPACE EXHAUSTED - - STOP" <> 
+
+exhausted = logNO( linebreak <>
+                    text "SEARCHSPACE EXHAUSTED - - STOP" <>
hunk ./src/Igor2/SynthesisEngine.hs 167
-stopWith hs = do 
-       llogDE $ text "STOP_WITH:" <^> pretty hs
+stopWith hs = do
+       logDE $ text "STOP_WITH:" <^> pretty hs
hunk ./src/Igor2/SynthesisEngine.hs 171
-       llogNO $ text "Stopped after entering loop the" <+> int lc <> 
+       logNO $ text "Stopped after entering loop the" <+> int lc <>