trace -package:matrix -package:Cabal-syntax package:ghc

The trace function outputs the trace message given as its first argument, before returning the second argument as its result. For example, this returns the value of f x and outputs the message to stderr. Depending on your terminal (settings), they may or may not be mixed.
>>> let x = 123; f = show

>>> trace ("calling f with x = " ++ show x) (f x)
calling f with x = 123
"123"
The trace function should only be used for debugging, or for monitoring execution. The function is not referentially transparent: its type indicates that it is a pure function but it has the side effect of outputting the trace message.
Tracing utilities
outputs splice information for 2 flags which have different output formats: `-ddump-splices` and `-dth-dec-file`
Syntactic sugar, i.e., a Haskell function which generates useful JS code. Given a JExpr, ex, inject a trace statement on ex in the compiled JS program
Trace a command (when verbosity level >= 3)
Record in the eventlog when the given tool command starts and finishes, prepending the given String with "systool:", to easily be able to collect and process all the systool events. For those events to show up in the eventlog, you need to run GHC with -v2 or -ddump-timings.