linear-base-0.1.0: Standard library for linear types.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Debug.Trace.Linear

Description

A thin wrapper on top of Debug.Trace, providing linear versions of tracing functions.

It only contains minimal amount of documentation; you should consult the original Debug.Trace module for more detailed information.

Synopsis

Tracing

trace :: String %1 -> a %1 -> a Source #

The trace function outputs the trace message given as its first argument, before returning the second argument as its result.

traceShow :: Show a => a -> b %1 -> b Source #

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

traceId :: String %1 -> String Source #

Like trace but returns the message instead of a third value.

traceStack :: String %1 -> a %1 -> a Source #

Like trace, but additionally prints a call stack if one is available.

traceIO :: String %1 -> IO () Source #

The traceIO function outputs the trace message from the IO monad. This sequences the output with respect to other IO actions.

traceM :: Applicative f => String %1 -> f () Source #

Like trace but returning unit in an arbitrary Applicative context. Allows for convenient use in do-notation.

traceShowM :: (Show a, Applicative f) => a -> f () Source #

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

Eventlog tracing

traceEvent :: String %1 -> a %1 -> a Source #

The traceEvent function behaves like trace with the difference that the message is emitted to the eventlog, if eventlog profiling is available and enabled at runtime.

traceEventIO :: String %1 -> IO () Source #

The traceEventIO function emits a message to the eventlog, if eventlog profiling is available and enabled at runtime.

Execution phase markers

traceMarker :: String %1 -> a %1 -> a Source #

The traceMarker function emits a marker to the eventlog, if eventlog profiling is available and enabled at runtime. The String is the name of the marker. The name is just used in the profiling tools to help you keep clear which marker is which.

traceMarkerIO :: String %1 -> IO () Source #

The traceMarkerIO function emits a marker to the eventlog, if eventlog profiling is available and enabled at runtime.