lib: let dbg*IO work in any MonadIO
This commit is contained in:
		
							parent
							
								
									e7c457f970
								
							
						
					
					
						commit
						550e99acd3
					
				@ -17,6 +17,7 @@ module Hledger.Utils.Debug (
 | 
				
			|||||||
where
 | 
					where
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Control.Monad (when)
 | 
					import Control.Monad (when)
 | 
				
			||||||
 | 
					import Control.Monad.IO.Class
 | 
				
			||||||
import Data.List
 | 
					import Data.List
 | 
				
			||||||
import Debug.Trace
 | 
					import Debug.Trace
 | 
				
			||||||
import Safe (readDef)
 | 
					import Safe (readDef)
 | 
				
			||||||
@ -123,34 +124,34 @@ dbg9 = tracePrettyAt 9
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-- | Convenience aliases for tracePrettyAtIO.
 | 
					-- | Convenience aliases for tracePrettyAtIO.
 | 
				
			||||||
-- Like dbg, but convenient to insert in an IO monad.
 | 
					-- Like dbg, but convenient to insert in an IO monad.
 | 
				
			||||||
dbgIO :: Show a => String -> a -> IO ()
 | 
					dbgIO :: (MonadIO m, Show a) => String -> a -> m ()
 | 
				
			||||||
dbgIO = tracePrettyAtIO 0
 | 
					dbgIO = tracePrettyAtIO 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dbg1IO :: Show a => String -> a -> IO ()
 | 
					dbg1IO :: (MonadIO m, Show a) => String -> a -> m ()
 | 
				
			||||||
dbg1IO = tracePrettyAtIO 1
 | 
					dbg1IO = tracePrettyAtIO 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dbg2IO :: Show a => String -> a -> IO ()
 | 
					dbg2IO :: (MonadIO m, Show a) => String -> a -> m ()
 | 
				
			||||||
dbg2IO = tracePrettyAtIO 2
 | 
					dbg2IO = tracePrettyAtIO 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dbg3IO :: Show a => String -> a -> IO ()
 | 
					dbg3IO :: (MonadIO m, Show a) => String -> a -> m ()
 | 
				
			||||||
dbg3IO = tracePrettyAtIO 3
 | 
					dbg3IO = tracePrettyAtIO 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dbg4IO :: Show a => String -> a -> IO ()
 | 
					dbg4IO :: (MonadIO m, Show a) => String -> a -> m ()
 | 
				
			||||||
dbg4IO = tracePrettyAtIO 4
 | 
					dbg4IO = tracePrettyAtIO 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dbg5IO :: Show a => String -> a -> IO ()
 | 
					dbg5IO :: (MonadIO m, Show a) => String -> a -> m ()
 | 
				
			||||||
dbg5IO = tracePrettyAtIO 5
 | 
					dbg5IO = tracePrettyAtIO 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dbg6IO :: Show a => String -> a -> IO ()
 | 
					dbg6IO :: (MonadIO m, Show a) => String -> a -> m ()
 | 
				
			||||||
dbg6IO = tracePrettyAtIO 6
 | 
					dbg6IO = tracePrettyAtIO 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dbg7IO :: Show a => String -> a -> IO ()
 | 
					dbg7IO :: (MonadIO m, Show a) => String -> a -> m ()
 | 
				
			||||||
dbg7IO = tracePrettyAtIO 7
 | 
					dbg7IO = tracePrettyAtIO 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dbg8IO :: Show a => String -> a -> IO ()
 | 
					dbg8IO :: (MonadIO m, Show a) => String -> a -> m ()
 | 
				
			||||||
dbg8IO = tracePrettyAtIO 8
 | 
					dbg8IO = tracePrettyAtIO 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dbg9IO :: Show a => String -> a -> IO ()
 | 
					dbg9IO :: (MonadIO m, Show a) => String -> a -> m ()
 | 
				
			||||||
dbg9IO = tracePrettyAtIO 9
 | 
					dbg9IO = tracePrettyAtIO 9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- | Pretty-print a message and a showable value to the console if the debug level is at or above the specified level.
 | 
					-- | Pretty-print a message and a showable value to the console if the debug level is at or above the specified level.
 | 
				
			||||||
@ -158,8 +159,8 @@ dbg9IO = tracePrettyAtIO 9
 | 
				
			|||||||
tracePrettyAt :: Show a => Int -> String -> a -> a
 | 
					tracePrettyAt :: Show a => Int -> String -> a -> a
 | 
				
			||||||
tracePrettyAt lvl = dbgppshow lvl
 | 
					tracePrettyAt lvl = dbgppshow lvl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tracePrettyAtIO :: Show a => Int -> String -> a -> IO ()
 | 
					tracePrettyAtIO :: (MonadIO m, Show a) => Int -> String -> a -> m ()
 | 
				
			||||||
tracePrettyAtIO lvl lbl x = tracePrettyAt lvl lbl x `seq` return ()
 | 
					tracePrettyAtIO lvl lbl x = liftIO $ tracePrettyAt lvl lbl x `seq` return ()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- XXX
 | 
					-- XXX
 | 
				
			||||||
-- Could not deduce (a ~ ())
 | 
					-- Could not deduce (a ~ ())
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user