<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Debug.Trace</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Debug-Trace.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >base-4.1.0.0: Basic libraries</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Debug.Trace</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >provisional</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >libraries@haskell.org</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Tracing </A ></DT ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Debug-Trace.html#v%3Atrace" >trace</A ></TT > function. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AputTraceMsg" >putTraceMsg</A > :: <A HREF="Data-Char.html#t%3AString" >String</A > -> <A HREF="System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Atrace" >trace</A > :: <A HREF="Data-Char.html#t%3AString" >String</A > -> a -> a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AtraceShow" >traceShow</A > :: <A HREF="Text-Show.html#t%3AShow" >Show</A > a => a -> b -> b</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >Tracing </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:putTraceMsg" ><A NAME="v%3AputTraceMsg" ></A ></A ><B >putTraceMsg</B > :: <A HREF="Data-Char.html#t%3AString" >String</A > -> <A HREF="System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT ><A HREF="Debug-Trace.html#v%3AputTraceMsg" >putTraceMsg</A ></TT > 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. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:trace" ><A NAME="v%3Atrace" ></A ></A ><B >trace</B > :: <A HREF="Data-Char.html#t%3AString" >String</A > -> a -> a</TD ></TR ><TR ><TD CLASS="doc" >When called, <TT ><A HREF="Debug-Trace.html#v%3Atrace" >trace</A ></TT > outputs the string in its first argument, before returning the second argument as its result. The <TT ><A HREF="Debug-Trace.html#v%3Atrace" >trace</A ></TT > function is not referentially transparent, and should only be used for debugging, or for monitoring execution. Some implementations of <TT ><A HREF="Debug-Trace.html#v%3Atrace" >trace</A ></TT > may decorate the string that's output to indicate that you're tracing. The function is implemented on top of <TT ><A HREF="Debug-Trace.html#v%3AputTraceMsg" >putTraceMsg</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:traceShow" ><A NAME="v%3AtraceShow" ></A ></A ><B >traceShow</B > :: <A HREF="Text-Show.html#t%3AShow" >Show</A > a => a -> b -> b</TD ></TR ><TR ><TD CLASS="doc" ><P >Like <TT ><A HREF="Debug-Trace.html#v%3Atrace" >trace</A ></TT >, but uses <TT ><A HREF="Text-Show.html#v%3Ashow" >show</A ></TT > on the argument to convert it to a <TT ><A HREF="Data-Char.html#t%3AString" >String</A ></TT >. </P ><PRE > traceShow = trace . show </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.4.2</TD ></TR ></TABLE ></BODY ></HTML >