This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.
<!DOCTYPE html>
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__Logging (InferBase.InferBase__Logging)</title><linkrel="stylesheet"href="../../odoc.css"/><metacharset="utf-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><metaname="generator"content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><navid="top"><ahref="../index.html">Up</a>—<spanclass="package">package <ahref="../index.html">InferBase</a></span></nav><header><h1><spanclass="keyword">Module</span><spanclass="module-path">InferBase__Logging</span></h1></header><p>log messages at different levels of verbosity</p><divclass="spec module"id="module-F"><ahref="#module-F"class="anchor"></a><divclass="def module"><code><spanclass="keyword">module </span>F = Format</code></div><divclass="doc"></div></div><divclass="spec include"><divclass="doc"></div><detailsopen="open"><summary><spanclass="def"><code><spanclass="keyword">include </span><spanclass="keyword">module type of </span><ahref="../InferBase/index.html#module-Die">InferBase.Die</a></code></span></summary><divclass="spec exception"id="exception-InferExternalError"><ahref="#exception-InferExternalError"class="anchor"></a><divclass="def exception"><code><spanclass="keyword">exception </span></code><code><spanclass="exception">InferExternalError</span><spanclass="keyword"> of </span>string</code></div><divclass="doc"></div></div><divclass="spec exception"id="exception-InferInternalError"><ahref="#exception-InferInternalError"class="anchor"></a><divclass="def exception"><code><spanclass="keyword">exception </span></code><code><spanclass="exception">InferInternalError</span><spanclass="keyword"> of </span>string</code></div><divclass="doc"></div></div><divclass="spec exception"id="exception-InferUserError"><ahref="#exception-InferUserError"class="anchor"></a><divclass="def exception"><code><spanclass="keyword">exception </span></code><code><spanclass="exception">InferUserError</span><spanclass="keyword"> of </span>string</code></div><divclass="doc"></div></div><divclass="spec exception"id="exception-InferExit"><ahref="#exception-InferExit"class="anchor"></a><divclass="def exception"><code><spanclass="keyword">exception </span></code><code><spanclass="exception">InferExit</span><spanclass="keyword"> of </span>int</code></div><divclass="doc"><p>This can be used to avoid scattering exit invocations all over the codebase</p></div></div><divclass="spec type"id="type-error"><ahref="#type-error"class="anchor"></a><divclass="def type"><code><spanclass="keyword">type </span>error</code><code></code><code><spanclass="keyword"> = </span></code><tableclass="variant"><trid="type-error.ExternalError"class="anchored"><tdclass="def constructor"><ahref="#type-error.ExternalError"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">ExternalError</span></code></td></tr><trid="type-error.InternalError"class="anchored"><tdclass="def constructor"><ahref="#type-error.InternalError"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">InternalError</span></code></td></tr><trid="type-error.UserError"class="anchored"><tdclass="def constructor"><ahref="#type-error.UserError"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">UserError</span></code></td></tr></table><code></code></div><divclass="doc"><p>kind of error for <codeclass="code">die</code>, with similar semantics as <codeclass="code">Logging.{external,internal,user}_error</code></p></div></div><divclass="spec val"id="val-exit"><ahref="#val-exit"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>exit : int <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"></div></div><divclass="spec val"id="val-exit_code_of_exception"><ahref="#val-exit_code_of_exception"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>exit_code_of_exception : <ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Exn.t <spanclass="keyword">‑></span> int</code></div><divclass="doc"></div></div><divclass="spec val"id="val-set_log_uncaught_exception_callback"><ahref="#val-set_log_uncaught_exception_callback"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>set_log_uncaught_exception_callback : (exn <spanclass="keyword">‑></span> exitcode:int <spanclass="keyword">‑></span> unit) <spanclass="keyword">‑></span> unit</code></div><divclass="doc"></div></div><divclass="spec val"id="val-log_uncaught_exception"><ahref="#val-log_uncaught_exception"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>log_uncaught_exception : exn <spanclass="keyword">‑></span> exitcode:int <spanclass="keyword">‑></span> unit</code></div><divclass="doc"></div></div><divclass="spec val"id="val-die"><ahref="#val-die"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>die : <ahref="index.html#type-error">error</a><spanclass="keyword">‑></span> (<spanclass="type-var">'a</span>,Format.formatter,unit,<spanclass="type-var">_</span>)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format4 <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"><p>Raise the corresponding exception.</p></div></div><divclass="spec val"id="val-raise_error"><ahref="#val-raise_error"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>raise_error : <ahref="index.html#type-error">error</a><spanclass="keyword">‑></span> msg:string <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"></div></div><divclass="spec type"id="type-style"><ahref="#type-style"class="anchor"></a><divclass="def type"><code><spanclass="keyword">type </span>style</code><code></code><code><spanclass="keyword"> = </span></code><tableclass="variant"><trid="type-style.Error"class="anchored"><tdclass="def constructor"><ahref="#type-style.Error"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">Error</span></code></td></tr><trid="type-style.Fatal"class="anchored"><tdclass="def constructor"><ahref="#type-style.Fatal"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">Fatal</span></code></td></tr><trid="type-style.Normal"class="anchored"><tdclass="def constructor"><ahref="#type-style.Normal"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">Normal</span></code></td></tr><trid="type-style.Warning"class="anchored"><tdclass="def constructor"><ahref="#type-style.Warning"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">Warning</span></code></td></tr></table><code></code></div><divclass="doc"></div></div><divclass="spec val"id="val-term_styles_of_style"><ahref="#val-term_styles_of_style"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>term_styles_of_style : <ahref="index.html#type-style">style</a><spanclass="keyword">‑></span><ahref="../../InferStdlib/InferStdlib/IStd/index.html#module-ANSITerminal">InferStdlib.IStd.ANSITerminal</a>.style list</code></div><divclass="doc"></div></div></details></div><divclass="spec val"id="val-environment_info"><ahref="#val-environment_info"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>environment_info : (<spanclass="type-var">'a</span>,<ahref="index.html#module-F">F</a>.formatter,unit)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"><p>log information about the environment</p></div></div><divclass="spec val"id="val-progress"><ahref="#val-progress"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>progress : (<spanclass="type-var">'a</span>,<ahref="index.html#module-F">F</a>.formatter,unit)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"><p>print immediately to standard error unless --quiet is specified</p></div></div><divclass="spec val"id="val-progressbar_file"><ahref="#val-progressbar_file"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>progressbar_file : unit <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>Progress bar: start of the analysis of a file.</p></div></div><divclass="spec val"id="val-progressbar_procedure"><ahref="#val-progressbar_procedure"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>progressbar_procedure : unit <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>Progress bar: start of the analysis of a procedure.</p></div></div><divclass="spec val"id="val-progressbar_timeout_event"><ahref="#val-progressbar_timeout_event"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>progressbar_timeout_event : <ahref="../InferBase/SymOp/index.html#type-failure_kind">InferBase.SymOp.failure_kind</a><spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>Progress bar: log a timeout event if in developer mode.</p></div></div><divclass="spec val"id="val-result"><ahref="#val-result"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>result : (<spanclass="type-var">'a</span>,<ahref="index.html#module-F">F</a>.formatter,unit)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"><p>Emit a result to stdout. Use only if the output format is stable and useful enough that it may
conceivably get piped to another program, ie, almost never (use <codeclass="code">progress</code> instead otherwise).</p></div></div><divclass="spec val"id="val-user_error"><ahref="#val-user_error"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>user_error : (<spanclass="type-var">'a</span>,<ahref="index.html#module-F">F</a>.formatter,unit)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"><p>bad input, etc. detected</p></div></div><divclass="spec val"id="val-user_warning"><ahref="#val-user_warning"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>user_warning : (<spanclass="type-var">'a</span>,<ahref="index.html#module-F">F</a>.formatter,unit)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"></div></div><divclass="spec val"id="val-internal_error"><ahref="#val-internal_error"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>internal_error : (<spanclass="type-var">'a</span>,<ahref="index.html#module-F">F</a>.formatter,unit)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"><p>huho, infer has a bug</p></div></div><divclass="spec val"id="val-external_error"><ahref="#val-external_error"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>external_error : (<spanclass="type-var">'a</span>,<ahref="index.html#module-F">F</a>.formatter,unit)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"><p>some other tool has a bug or is called wrongly</p></div></div><divclass="spec val"id="val-external_warning"><ahref="#val-external_warning"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>external_warning : (<spanclass="type-var">'a</span>,<ahref="index.html#module-F">F</a>.formatter,unit)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"></div></div><divclass="spec type"id="type-debug_kind"><ahref="#type-debug_kind"class="anchor"></a><divclass="def type"><code><spanclass="keyword">type </span>debug_kind</code><code></code><code><spanclass="keyword"> = </span></code><tableclass="variant"><trid="type-debug_kind.Analysis"class="anchored"><tdclass="def constructor"><ahref="#type-debug_kind.Analysis"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">Analysis</span></code></td></tr><trid="type-debug_kind.BufferOverrun"class="anchored"><tdclass="def constructor"><ahref="#type-debug_kind.BufferOverrun"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">BufferOverrun</span></code></td></tr><trid="type-debug_kind.Capture"class="anchored"><tdclass="def constructor"><ahref="#type-debug_kind.Capture"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">Capture</span></code></td></tr><trid="type-debug_kind.Linters"class="anchored"><tdclass="def constructor"><ahref="#type-debug_kind.Linters"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">Linters</span></code></td></tr><trid="type-debug_kind.MergeCapture"class="anchored"><tdclass="def constructor"><ahref="#type-debug_kind.MergeCapture"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">MergeCapture</span></code></td></tr><trid="type-debug_kind.TestDeterminator"class="anchored"><tdclass="def constructor"><ahref="#type-debug_kind.TestDeterminator"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">TestDeterminator</span></code></td></tr></table><code></code></div><divclass="doc"></div></div><divclass="spec type"id="type-debug_level"><ahref="#type-debug_level"class="anchor"></a><divclass="def type"><code><spanclass="keyword">type </span>debug_level</code><code></code><code><spanclass="keyword"> = </span></code><tableclass="variant"><trid="type-debug_level.Quiet"class="anchored"><tdclass="def constructor"><ahref="#type-debug_level.Quiet"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">Quiet</span></code></td><tdclass="doc"><p>(** innocuous, eg emitted once per toplevel execution *)</p></td></tr><trid="type-debug_level.Medium"class="anchored"><tdclass="def constructor"><ahref="#type-debug_level.Medium"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">Medium</span></code></td><tdclass="doc"><p>(** still fairly lightweight, eg emitted O(<number of infer processes>) *)</p></td></tr><trid="type-debug_level.Verbose"class="anchored"><tdclass="def constructor"><ahref="#type-debug_level.Verbose"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">Verbose</span></code></td><tdclass="doc"><p>(** go crazy *)</p></td></tr></table><code></code></div><divclass="doc"><p>Level of verbosity for debug output. Each level enables all the levels before it.</p></div></div><divclass="spec val"id="val-debug"><ahref="#val-debug"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>debug : <ahref="index.html#type-debug_kind">debug_kind</a><spanclass="keyword">‑></span><ahref="index.html#type-debug_level">debug_level</a><spanclass="keyword">‑></span> (<spanclass="type-var">'a</span>,<ahref="index.html#module-F">F</a>.formatter,unit)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"><p>log debug info</p></div></div><divclass="spec val"id="val-debug_dev"><ahref="#val-debug_dev"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>debug_dev : (<spanclass="type-var">'a</span>,Format.formatter,unit)<ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <spanclass="keyword">‑></span><spanclass="type-var">'a</span></code></div><divclass="doc"><p>For debugging during development.</p><ulclass="at-tag"><li><spanclass="at-tag deprecated">Deprecated</span> Only use to debug during development. If you want more permanent logging, use [Logging.debug] instead.</li></ul></div></div><divclass="spec type"id="type-ocaml_pos"><ahref="#type-ocaml_pos"class="anchor"></a><divclass="def type"><code><spanclass="keyword">type </span>ocaml_pos</code><code><spanclass="keyword"> = </span>string<spanclass="keyword"> * </span>int<spanclass="keyword"> * </span>int<spanclass="keyword"> * </span>int</code><code></code></div><divclass="doc"><p>Type of location in ml source: __POS__</p></div></div><divclass="spec val"id="val-ocaml_pos_to_string"><ahref="#val-ocaml_pos_to_string"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>ocaml_pos_to_string : <ahref="index.html#type-ocaml_pos">ocaml_pos</a><spanclass="keyword">‑></span> string</code></div><divclass="doc"><p>Convert an ocaml position to a string</p></div></div><divclass="spec val"id="val-pp_ocaml_pos_opt"><ahref="#val-pp_ocaml_pos_opt"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>pp_ocaml_pos_opt : <ahref="index.html#module-F">F</a>.formatter <spanclass="keyword">‑></span><ahref="index.html#type-ocaml_pos">ocaml_pos</a> option <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>Pretty print a position in ocaml source</p></div></div><p>log management</p><divclass="spec val"id="val-setup_log_file"><ahref="#val-setup_log_file"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>setup_log_file : unit <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>Set up logging to go to the log file. Call this once the results directory has been set up.</p></div></div><divclass="spec val"id="val-reset_formatters"><ahref="#val-reset_formatters"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>reset_formatters : unit <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>Reset the formatters used for logging. Call this when you fork(2).</p></div></div><p>Delayed printing (HTML debug, ...)</p><divclass="spec type"id="type-print_type"><ahref="#type-print_type"class="anchor"></a><divclass="def type"><code><spanclass="keyword">type </span>print_type</code><code></code><code><spanclass="keyword"> = </span></code><tableclass="variant"><trid="type-print_type.PTatom"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTatom"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTatom</span></code></td></tr><trid="type-print_type.PTattribute"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTattribute"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTattribute</span></code></td></tr><trid="type-print_type.PTdecrease_indent"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTdecrease_indent"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTdecrease_indent</span></code></td></tr><trid="type-print_type.PTexp"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTexp"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTexp</span></code></td></tr><trid="type-print_type.PTexp_list"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTexp_list"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTexp_list</span></code></td></tr><trid="type-print_type.PThpred"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PThpred"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PThpred</span></code></td></tr><trid="type-print_type.PTincrease_indent"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTincrease_indent"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTincrease_indent</span></code></td></tr><trid="type-print_type.PTinstr"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTinstr"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTinstr</span></code></td></tr><trid="type-print_type.PTinstr_list"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTinstr_list"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTinstr_list</span></code></td></tr><trid="type-print_type.PTjprop_list"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTjprop_list"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTjprop_list</span></code></td></tr><trid="type-print_type.PTjprop_short"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTjprop_short"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTjprop_short</span></code></td></tr><trid="type-print_type.PTloc"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTloc"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTloc</span></code></td></tr><trid="type-print_type.PTnode_instrs"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTnode_instrs"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTnode_instrs</span></code></td></tr><trid="type-print_type.PToff"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PToff"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PToff</span></code></td></tr><trid="type-print_type.PToff_list"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PToff_list"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PToff_list</span></code></td></tr><trid="type-print_type.PTpath"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTpath"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTpath</span></code></td></tr><trid="type-print_type.PTprop"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTprop"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTprop</span></code></td></tr><trid="type-print_type.PTproplist"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTproplist"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTproplist</span></code></td></tr><trid="type-print_type.PTprop_list_with_typ"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTprop_list_with_typ"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTprop_list_with_typ</span></code></td></tr><trid="type-print_type.PTprop_with_typ"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTprop_with_typ"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTprop_with_typ</span></code></td></tr><trid="type-print_type.PTpvar"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTpvar"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTpvar</span></code></td></tr><trid="type-print_type.PTspec"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTspec"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTspec</span></code></td></tr><trid="type-print_type.PTstr"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTstr"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTstr</span></code></td></tr><trid="type-print_type.PTstr_color"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTstr_color"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTstr_color</span></code></td></tr><trid="type-print_type.PTstrln"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTstrln"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTstrln</span></code></td></tr><trid="type-print_type.PTstrln_color"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTstrln_color"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTstrln_color</span></code></td></tr><trid="type-print_type.PTpathset"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTpathset"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTpathset</span></code></td></tr><trid="type-print_type.PTpi"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTpi"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTpi</span></code></td></tr><trid="type-print_type.PTsexp"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTsexp"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTsexp</span></code></td></tr><trid="type-print_type.PTsexp_list"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTsexp_list"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTsexp_list</span></code></td></tr><trid="type-print_type.PTsigma"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTsigma"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTsigma</span></code></td></tr><trid="type-print_type.PTtexp_full"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTtexp_full"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTtexp_full</span></code></td></tr><trid="type-print_type.PTsub"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTsub"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTsub</span></code></td></tr><trid="type-print_type.PTtyp_full"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTtyp_full"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTtyp_full</span></code></td></tr><trid="type-print_type.PTtyp_list"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTtyp_list"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTtyp_list</span></code></td></tr><trid="type-print_type.PTwarning"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTwarning"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTwarning</span></code></td></tr><trid="type-print_type.PTerror"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTerror"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTerror</span></code></td></tr><trid="type-print_type.PTinfo"class="anchored"><tdclass="def constructor"><ahref="#type-print_type.PTinfo"class="anchor"></a><code><spanclass="keyword">| </span></code><code><spanclass="constructor">PTinfo</span></code></td></tr></table><code></code></div><divclass="doc"><p>type of printable elements</p></div></div><divclass="spec type"id="type-print_action"><ahref="#type-print_action"class="anchor"></a><divclass="def type"><code><spanclass="keyword">type </span>print_action</code><code><spanclass="keyword"> = </span><ahref="index.html#type-print_type">print_type</a><spanclass="keyword"> * </span>Obj.t</code><code></code></div><divclass="doc"><p>delayable print action</p><p>data to be printed</p></div></div><divclass="spec val"id="val-printer_hook"><ahref="#val-printer_hook"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>printer_hook : (<ahref="index.html#module-F">F</a>.formatter <spanclass="keyword">‑></span><ahref="index.html#type-print_action">print_action</a><spanclass="keyword">‑></span> unit) <ahref="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><divclass="doc"><p>hook for the current printer of delayed print actions</p></div></div><divclass="spec val"id="val-add_print_action"><ahref="#val-add_print_action"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>add_print_action : <ahref="index.html#type-print_action">print_action</a><spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>extend he current print log</p></div></div><divclass="spec val"id="val-get_delayed_prints"><ahref="#val-get_delayed_prints"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>get_delayed_prints : unit <spanclass="keyword">‑></span><ahref="index.html#type-print_action">print_action</a> list</code></div><divclass="doc"><p>return the delayed print actions</p></div></div><divclass="spec val"id="val-set_delayed_prints"><ahref="#val-set_delayed_prints"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>set_delayed_prints : <ahref="index.html#type-print_action">print_action</a> list <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>set the delayed print actions</p></div></div><divclass="spec val"id="val-reset_delayed_prints"><ahref="#val-reset_delayed_prints"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>reset_delayed_prints : unit <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>reset the delayed print actions</p></div></div><divclass="spec val"id="val-d_str"><ahref="#val-d_str"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_str : string <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump a string</p></div></div><divclass="spec val"id="val-d_str_color"><ahref="#val-d_str_color"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_str_color : <ahref="../../InferStdlib/InferStdlib/Pp/index.html#type-color">InferStdlib.Pp.color</a><spanclass="keyword">‑></span> string <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump a string with the given color</p></div></div><divclass="spec val"id="val-d_strln"><ahref="#val-d_strln"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_strln : string <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump a string plus newline</p></div></div><divclass="spec val"id="val-d_strln_color"><ahref="#val-d_strln_color"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_strln_color : <ahref="../../InferStdlib/InferStdlib/Pp/index.html#type-color">InferStdlib.Pp.color</a><spanclass="keyword">‑></span> string <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump a string plus newline with the given color</p></div></div><divclass="spec val"id="val-d_ln"><ahref="#val-d_ln"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_ln : unit <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump a newline</p></div></div><divclass="spec val"id="val-d_error"><ahref="#val-d_error"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_error : string <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump an error string</p></div></div><divclass="spec val"id="val-d_warning"><ahref="#val-d_warning"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_warning : string <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump a warning string</p></div></div><divclass="spec val"id="val-d_info"><ahref="#val-d_info"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_info : string <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump an info string</p></div></div><divclass="spec val"id="val-d_indent"><ahref="#val-d_indent"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_indent : int <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump an indentation</p></div></div><divclass="spec val"id="val-d_increase_indent"><ahref="#val-d_increase_indent"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_increase_indent : int <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump command to increase the indentation level</p></div></div><divclass="spec val"id="val-d_decrease_indent"><ahref="#val-d_decrease_indent"class="anchor"></a><divclass="def val"><code><spanclass="keyword">val </span>d_decrease_indent : int <spanclass="keyword">‑></span> unit</code></div><divclass="doc"><p>dump command to decrease the indentation level</p></div></div></body></html>