<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>IBase__Utils (infer.IBase__Utils)</title><linkrel="stylesheet"href="../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.0"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="../index.html">Up</a>–<ahref="../index.html">infer</a>» IBase__Utils</nav><h1>Module <code>IBase__Utils</code></h1></header><dl><dtclass="spec value"id="val-find_files"><ahref="#val-find_files"class="anchor"></a><code><spanclass="keyword">val</span> find_files : <span>path:string</span><span>-></span><span>extension:string</span><span>-></span><span>string list</span></code></dt><dd><p>recursively traverse a path for files ending with a given extension</p></dd></dl><dl><dtclass="spec value"id="val-fold_folders"><ahref="#val-fold_folders"class="anchor"></a><code><spanclass="keyword">val</span> fold_folders : <span>init:<spanclass="type-var">'acc</span></span><span>-></span><span>f:<span>(<spanclass="type-var">'acc</span><span>-></span> string <span>-></span><spanclass="type-var">'acc</span>)</span></span><span>-></span><span>path:string</span><span>-></span><spanclass="type-var">'acc</span></code></dt><dd><p>recursively traverse a path for folders, returning resuls by a given fold function</p></dd></dl><dl><dtclass="spec value"id="val-string_crc_hex32"><ahref="#val-string_crc_hex32"class="anchor"></a><code><spanclass="keyword">val</span> string_crc_hex32 : string <span>-></span> string</code></dt><dd><p>Compute a 32-character hexadecimal crc using the Digest module</p></dd></dl><dl><dtclass="spec value"id="val-read_file"><ahref="#val-read_file"class="anchor"></a><code><spanclass="keyword">val</span> read_file : string <span>-></span><span><span>(<span>string list</span>,string)</span><ahref="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Result.t</span></code></dt><dd><p>read a source file and return a list of lines</p></dd></dl><dl><dtclass="spec value"id="val-filename_to_absolute"><ahref="#val-filename_to_absolute"class="anchor"></a><code><spanclass="keyword">val</span> filename_to_absolute : <span>root:string</span><span>-></span> string <span>-></span> string</code></dt><dd><p>Convert a filename to an absolute one if it is relative, and normalize "." and ".."</p></dd></dl><dl><dtclass="spec value"id="val-filename_to_relative"><ahref="#val-filename_to_relative"class="anchor"></a><code><spanclass="keyword">val</span> filename_to_relative : <span>?⁠force_full_backtrack:bool</span><span>-></span><span>?⁠backtrack:int</span><span>-></span><span>root:string</span><span>-></span> string <span>-></span><span>string option</span></code></dt><dd><p>Convert an absolute filename to one relative to a root directory. Returns <code>None</code> if filename is not under root. The backtrack level sets the maximum level of steps in the parent directories to search for a common prefix</p></dd></dl><dl><dtclass="spec type"id="type-outfile"><ahref="#type-outfile"class="anchor"></a><code><spanclass="keyword">type</span> outfile</code><code> = </code><code>{</code><tableclass="record"><trid="type-outfile.fname"class="anchored"><tdclass="def field"><ahref="#type-outfile.fname"class="anchor"></a><code>fname : string;</code></td><tdclass="doc"><p>name of the file</p></td></tr><trid="type-outfile.out_c"class="anchored"><tdclass="def field"><ahref="#type-outfile.out_c"class="anchor"></a><code>out_c : <ahref="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Out_channel.t;</code></td><tdclass="doc"><p>output channel</p></td></tr><trid="type-outfile.fmt"class="anchored"><tdclass="def field"><ahref="#type-outfile.fmt"class="anchor"></a><code>fmt : Stdlib.Format.formatter;</code></td><tdclas