hledger-lib-1.11.1: Core data types, parsers and functionality for the hledger accounting tools

Safe HaskellNone
LanguageHaskell2010

Hledger.Utils.Debug

Description

Debugging helpers

Synopsis

Documentation

pprint :: Show a => a -> IO () Source #

Pretty print. Easier alias for pretty-show's pPrint.

pshow :: Show a => a -> String Source #

Pretty show. Easier alias for pretty-show's ppShow.

ptrace :: Show a => a -> a Source #

Pretty trace. Easier alias for traceShowId + ppShow.

traceWith :: (a -> String) -> a -> a Source #

Trace (print to stderr) a showable value using a custom show function.

debugLevel :: Int Source #

Global debug level, which controls the verbosity of debug output on the console. The default is 0 meaning no debug output. The --debug command line flag sets it to 1, or --debug=N sets it to a higher value (note: not --debug N for some reason). This uses unsafePerformIO and can be accessed from anywhere and before normal command-line processing. When running with :main in GHCI, you must touch and reload this module to see the effect of a new --debug option. After command-line processing, it is also available as the debug_ field of CliOpts. {--} {--}

ptraceAt :: Show a => Int -> String -> a -> a Source #

Pretty-print a label and a showable value to the console if the global debug level is at or above the specified level. At level 0, always prints. Otherwise, uses unsafePerformIO.

dbg0 :: Show a => String -> a -> a Source #

Pretty-print a message and the showable value to the console, then return it.

dbgExit :: Show a => String -> a -> a Source #

Like dbg0, but also exit the program. Uses unsafePerformIO.

dbg1 :: Show a => String -> a -> a Source #

Pretty-print a message and the showable value to the console when the global debug level is >= 1, then return it. Uses unsafePerformIO.

dbg2 :: Show a => String -> a -> a Source #

dbg3 :: Show a => String -> a -> a Source #

dbg4 :: Show a => String -> a -> a Source #

dbg5 :: Show a => String -> a -> a Source #

dbg6 :: Show a => String -> a -> a Source #

dbg7 :: Show a => String -> a -> a Source #

dbg8 :: Show a => String -> a -> a Source #

dbg9 :: Show a => String -> a -> a Source #

ptraceAtIO :: (MonadIO m, Show a) => Int -> String -> a -> m () Source #

Like ptraceAt, but convenient to insert in an IO monad (plus convenience aliases). XXX These have a bug; they should use traceIO, not trace, otherwise GHC can occasionally over-optimise (cf lpaste a few days ago where it killed/blocked a child thread).

dbg0IO :: (MonadIO m, Show a) => String -> a -> m () Source #

dbg1IO :: (MonadIO m, Show a) => String -> a -> m () Source #

dbg2IO :: (MonadIO m, Show a) => String -> a -> m () Source #

dbg3IO :: (MonadIO m, Show a) => String -> a -> m () Source #

dbg4IO :: (MonadIO m, Show a) => String -> a -> m () Source #

dbg5IO :: (MonadIO m, Show a) => String -> a -> m () Source #

dbg6IO :: (MonadIO m, Show a) => String -> a -> m () Source #

dbg7IO :: (MonadIO m, Show a) => String -> a -> m () Source #

dbg8IO :: (MonadIO m, Show a) => String -> a -> m () Source #

dbg9IO :: (MonadIO m, Show a) => String -> a -> m () Source #

plog :: Show a => String -> a -> a Source #

Log a message and a pretty-printed showable value to ./debug.log, then return it.

plogAt :: Show a => Int -> String -> a -> a Source #

Log a message and a pretty-printed showable value to ./debug.log, if the global debug level is at or above the specified level. At level 0, always logs. Otherwise, uses unsafePerformIO.

traceParse :: String -> TextParser m () Source #

Print the provided label (if non-null) and current parser state (position and next input) to the console. (See also megaparsec's dbg.)

dbgparse :: Int -> String -> TextParser m () Source #

Convenience alias for traceParseAt