base-4.3.1.0: Basic libraries

Portability | portable
Stability | provisional
Maintainer | libraries@haskell.org

Debug.Trace

Contents

- Tracing

Description

The `trace` function.

Synopsis

- putTraceMsg :: String -> IO ()
- trace :: String -> a -> a
- traceShow :: Show a => a -> b -> b

# Tracing

putTraceMsg :: String -> IO ()

`putTraceMsg` function outputs the trace message from IO monad. Usually the output stream is `System.IO.stderr` but if the function is called from Windows GUI application then the output will be directed to the Windows debug console.

trace :: String -> a -> a

When called, `trace` outputs the string in its first argument, before returning the second argument as its result. The `trace` function is not referentially transparent, and should only be used for debugging, or for monitoring execution. Some implementations of `trace` may decorate the string that's output to indicate that you're tracing. The function is implemented on top of `putTraceMsg`.

traceShow :: Show a => a -> b -> b

Like `trace`, but uses `show` on the argument to convert it to a `String`.

     traceShow = trace . show