module Debug (
undefined,
error,
trace,
traceM,
traceIO,
traceShow,
traceShowM,
notImplemented,
) where
import qualified Prelude as P
import qualified Debug.Trace as T
undefined :: a
undefined = P.undefined
error :: P.String -> a
error = P.error
trace :: P.String -> a -> a
trace = T.trace
traceShow :: P.Show a => a -> a
traceShow a = T.trace (P.show a) a
traceShowM :: (P.Show a, P.Monad m) => a -> m ()
traceShowM a = traceM (P.show a)
traceM :: (P.Monad m) => P.String -> m ()
traceM s = T.trace s (P.return ())
traceIO :: P.String -> P.IO ()
traceIO = T.traceIO
notImplemented :: a
notImplemented = P.error "Not implemented"