module Anatomy.Debug where import Debug.Trace import Text.Show.Pretty debugging :: Bool debugging = False debug :: (Show a, Show b) => b -> a -> a debug s v | debugging = trace (prettyShow s ++ ": " ++ prettyShow v) v | otherwise = v dump :: (Monad m, Show a) => a -> m () dump x | debugging = trace (prettyShow x) (return ()) | otherwise = return () prettyShow :: Show a => a -> String prettyShow = ppShow