[Notes und commented implementation of a LM with Q as inner monad
martin.hofmann@uni-bamberg.de**20090128161719] hunk ./src/Logging/Logger.hs 156
-                     
-unLM :: LM a -> a 
-unLM m = 
-    case fst (runLM m) of 
-        Left s  -> error s
-        Right a -> a
+
hunk ./src/Logging/Logger.hs 169
+                     
+unLM :: LM a -> a 
+unLM m =   
+    case fst (runLM m) of 
+        Left s  -> error s
+        Right a -> a
+        
+-- TODO:
+-- This is a LoggingMonad transformer which uses the Q monad instead of the 
+-- Identity Monad as inner monad. This is needed, when reification should be 
+-- used, as well as interpretation of Exp or unique identifier (?? is this 
+-- really a topic??). I don't know if this entails a lot of rewriting. At the 
+-- moment I see only those functions which use unLM to be included in LM.
+--type LM = ELT Q
+--runLM :: -- (Language.Haskell.TH.Syntax.Quasi m) =>
+--               ELT Q a -> Q (Either String a, Log)
+--runLM = runELT
+                    
+--unLM :: LM a -> Q a 
+--unLM m = do 
+--    unlm <- liftM fst (runLM m) 
+--    case unlm  of 
+--        Left s  -> error s
+--        Right a -> return a