moonpool/dev/ocaml/Clambda/index.html

19 lines
No EOL
30 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Clambda (ocaml.Clambda)</title><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">ocaml</a> &#x00BB; Clambda</nav><header class="odoc-preamble"><h1>Module <code><span>Clambda</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-function_label"><a href="#type-function_label" class="anchor"></a><code><span><span class="keyword">type</span> function_label</span><span> = string</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-ustructured_constant"><a href="#type-ustructured_constant" class="anchor"></a><code><span><span class="keyword">type</span> ustructured_constant</span><span> = </span></code><ol><li id="type-ustructured_constant.Uconst_float" class="def variant constructor anchored"><a href="#type-ustructured_constant.Uconst_float" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_float</span> <span class="keyword">of</span> float</span></code></li><li id="type-ustructured_constant.Uconst_int32" class="def variant constructor anchored"><a href="#type-ustructured_constant.Uconst_int32" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_int32</span> <span class="keyword">of</span> int32</span></code></li><li id="type-ustructured_constant.Uconst_int64" class="def variant constructor anchored"><a href="#type-ustructured_constant.Uconst_int64" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_int64</span> <span class="keyword">of</span> int64</span></code></li><li id="type-ustructured_constant.Uconst_nativeint" class="def variant constructor anchored"><a href="#type-ustructured_constant.Uconst_nativeint" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_nativeint</span> <span class="keyword">of</span> nativeint</span></code></li><li id="type-ustructured_constant.Uconst_block" class="def variant constructor anchored"><a href="#type-ustructured_constant.Uconst_block" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_block</span> <span class="keyword">of</span> int * <span><a href="#type-uconstant">uconstant</a> list</span></span></code></li><li id="type-ustructured_constant.Uconst_float_array" class="def variant constructor anchored"><a href="#type-ustructured_constant.Uconst_float_array" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_float_array</span> <span class="keyword">of</span> <span>float list</span></span></code></li><li id="type-ustructured_constant.Uconst_string" class="def variant constructor anchored"><a href="#type-ustructured_constant.Uconst_string" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_string</span> <span class="keyword">of</span> string</span></code></li><li id="type-ustructured_constant.Uconst_closure" class="def variant constructor anchored"><a href="#type-ustructured_constant.Uconst_closure" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_closure</span> <span class="keyword">of</span> <span><a href="#type-ufunction">ufunction</a> list</span> * string * <span><a href="#type-uconstant">uconstant</a> list</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-uconstant"><a href="#type-uconstant" class="anchor"></a><code><span><span class="keyword">and</span> uconstant</span><span> = </span></code><ol><li id="type-uconstant.Uconst_ref" class="def variant constructor anchored"><a href="#type-uconstant.Uconst_ref" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_ref</span> <span class="keyword">of</span> string * <span><a href="#type-ustructured_constant">ustructured_constant</a> option</span></span></code></li><li id="type-uconstant.Uconst_int" class="def variant constructor anchored"><a href="#type-uconstant.Uconst_int" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_int</span> <span class="keyword">of</span> int</span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-uphantom_defining_expr"><a href="#type-uphantom_defining_expr" class="anchor"></a><code><span><span class="keyword">and</span> uphantom_defining_expr</span><span> = </span></code><ol><li id="type-uphantom_defining_expr.Uphantom_const" class="def variant constructor anchored"><a href="#type-uphantom_defining_expr.Uphantom_const" class="anchor"></a><code><span>| </span><span><span class="constructor">Uphantom_const</span> <span class="keyword">of</span> <a href="#type-uconstant">uconstant</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>The phantom-let-bound variable is a constant.</p><span class="comment-delim">*)</span></div></li><li id="type-uphantom_defining_expr.Uphantom_var" class="def variant constructor anchored"><a href="#type-uphantom_defining_expr.Uphantom_var" class="anchor"></a><code><span>| </span><span><span class="constructor">Uphantom_var</span> <span class="keyword">of</span> <a href="../Backend_var/index.html#type-t">Backend_var.t</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>The phantom-let-bound variable is an alias for another variable.</p><span class="comment-delim">*)</span></div></li><li id="type-uphantom_defining_expr.Uphantom_offset_var" class="def variant constructor anchored"><a href="#type-uphantom_defining_expr.Uphantom_offset_var" class="anchor"></a><code><span>| </span><span><span class="constructor">Uphantom_offset_var</span> <span class="keyword">of</span> </span><span>{</span></code><ol><li id="type-uphantom_defining_expr.var" class="def record field anchored"><a href="#type-uphantom_defining_expr.var" class="anchor"></a><code><span>var : <a href="../Backend_var/index.html#type-t">Backend_var.t</a>;</span></code></li><li id="type-uphantom_defining_expr.offset_in_words" class="def record field anchored"><a href="#type-uphantom_defining_expr.offset_in_words" class="anchor"></a><code><span>offset_in_words : int;</span></code></li></ol><code><span>}</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>The phantom-let-bound-variable's value is defined by adding the given number of words to the pointer contained in the given identifier.</p><span class="comment-delim">*)</span></div></li><li id="type-uphantom_defining_expr.Uphantom_read_field" class="def variant constructor anchored"><a href="#type-uphantom_defining_expr.Uphantom_read_field" class="anchor"></a><code><span>| </span><span><span class="constructor">Uphantom_read_field</span> <span class="keyword">of</span> </span><span>{</span></code><ol><li id="type-uphantom_defining_expr.var" class="def record field anchored"><a href="#type-uphantom_defining_expr.var" class="anchor"></a><code><span>var : <a href="../Backend_var/index.html#type-t">Backend_var.t</a>;</span></code></li><li id="type-uphantom_defining_expr.field" class="def record field anchored"><a href="#type-uphantom_defining_expr.field" class="anchor"></a><code><span>field : int;</span></code></li></ol><code><span>}</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>The phantom-let-bound-variable's value is found by adding the given number of words to the pointer contained in the given identifier, then dereferencing.</p><span class="comment-delim">*)</span></div></li><li id="type-uphantom_defining_expr.Uphantom_read_symbol_field" class="def variant constructor anchored"><a href="#type-uphantom_defining_expr.Uphantom_read_symbol_field" class="anchor"></a><code><span>| </span><span><span class="constructor">Uphantom_read_symbol_field</span> <span class="keyword">of</span> </span><span>{</span></code><ol><li id="type-uphantom_defining_expr.sym" class="def record field anchored"><a href="#type-uphantom_defining_expr.sym" class="anchor"></a><code><span>sym : string;</span></code></li><li id="type-uphantom_defining_expr.field" class="def record field anchored"><a href="#type-uphantom_defining_expr.field" class="anchor"></a><code><span>field : int;</span></code></li></ol><code><span>}</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>As for <code>Uphantom_read_var_field</code>, but with the pointer specified by a symbol.</p><span class="comment-delim">*)</span></div></li><li id="type-uphantom_defining_expr.Uphantom_block" class="def variant constructor anchored"><a href="#type-uphantom_defining_expr.Uphantom_block" class="anchor"></a><code><span>| </span><span><span class="constructor">Uphantom_block</span> <span class="keyword">of</span> </span><span>{</span></code><ol><li id="type-uphantom_defining_expr.tag" class="def record field anchored"><a href="#type-uphantom_defining_expr.tag" class="anchor"></a><code><span>tag : int;</span></code></li><li id="type-uphantom_defining_expr.fields" class="def record field anchored"><a href="#type-uphantom_defining_expr.fields" class="anchor"></a><code><span>fields : <span><a href="../Backend_var/index.html#type-t">Backend_var.t</a> list</span>;</span></code></li></ol><code><span>}</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>The phantom-let-bound variable points at a block with the given structure.</p><span class="comment-delim">*)</span></div></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-ulambda"><a href="#type-ulambda" class="anchor"></a><code><span><span class="keyword">and</span> ulambda</span><span> = </span></code><ol><li id="type-ulambda.Uvar" class="def variant constructor anchored"><a href="#type-ulambda.Uvar" class="anchor"></a><code><span>| </span><span><span class="constructor">Uvar</span> <span class="keyword">of</span> <a href="../Backend_var/index.html#type-t">Backend_var.t</a></span></code></li><li id="type-ulambda.Uconst" class="def variant constructor anchored"><a href="#type-ulambda.Uconst" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst</span> <span class="keyword">of</span> <a href="#type-uconstant">uconstant</a></span></code></li><li id="type-ulambda.Udirect_apply" class="def variant constructor anchored"><a href="#type-ulambda.Udirect_apply" class="anchor"></a><code><span>| </span><span><span class="constructor">Udirect_apply</span> <span class="keyword">of</span> <a href="#type-function_label">function_label</a> * <span><a href="#type-ulambda">ulambda</a> list</span> * <a href="../Debuginfo/index.html#type-t">Debuginfo.t</a></span></code></li><li id="type-ulambda.Ugeneric_apply" class="def variant constructor anchored"><a href="#type-ulambda.Ugeneric_apply" class="anchor"></a><code><span>| </span><span><span class="constructor">Ugeneric_apply</span> <span class="keyword">of</span> <a href="#type-ulambda">ulambda</a> * <span><a href="#type-ulambda">ulambda</a> list</span> * <a href="../Debuginfo/index.html#type-t">Debuginfo.t</a></span></code></li><li id="type-ulambda.Uclosure" class="def variant constructor anchored"><a href="#type-ulambda.Uclosure" class="anchor"></a><code><span>| </span><span><span class="constructor">Uclosure</span> <span class="keyword">of</span> <span><a href="#type-ufunction">ufunction</a> list</span> * <span><a href="#type-ulambda">ulambda</a> list</span></span></code></li><li id="type-ulambda.Uoffset" class="def variant constructor anchored"><a href="#type-ulambda.Uoffset" class="anchor"></a><code><span>| </span><span><span class="constructor">Uoffset</span> <span class="keyword">of</span> <a href="#type-ulambda">ulambda</a> * int</span></code></li><li id="type-ulambda.Ulet" class="def variant constructor anchored"><a href="#type-ulambda.Ulet" class="anchor"></a><code><span>| </span><span><span class="constructor">Ulet</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-mutable_flag">Asttypes.mutable_flag</a>
* <a href="../Lambda/index.html#type-value_kind">Lambda.value_kind</a>
* <a href="../Backend_var/With_provenance/index.html#type-t">Backend_var.With_provenance.t</a>
* <a href="#type-ulambda">ulambda</a>
* <a href="#type-ulambda">ulambda</a></span></code></li><li id="type-ulambda.Uphantom_let" class="def variant constructor anchored"><a href="#type-ulambda.Uphantom_let" class="anchor"></a><code><span>| </span><span><span class="constructor">Uphantom_let</span> <span class="keyword">of</span> <a href="../Backend_var/With_provenance/index.html#type-t">Backend_var.With_provenance.t</a>
* <span><a href="#type-uphantom_defining_expr">uphantom_defining_expr</a> option</span>
* <a href="#type-ulambda">ulambda</a></span></code></li><li id="type-ulambda.Uletrec" class="def variant constructor anchored"><a href="#type-ulambda.Uletrec" class="anchor"></a><code><span>| </span><span><span class="constructor">Uletrec</span> <span class="keyword">of</span> <span><span>(<a href="../Backend_var/With_provenance/index.html#type-t">Backend_var.With_provenance.t</a> * <a href="#type-ulambda">ulambda</a>)</span> list</span> * <a href="#type-ulambda">ulambda</a></span></code></li><li id="type-ulambda.Uprim" class="def variant constructor anchored"><a href="#type-ulambda.Uprim" class="anchor"></a><code><span>| </span><span><span class="constructor">Uprim</span> <span class="keyword">of</span> <a href="../Clambda_primitives/index.html#type-primitive">Clambda_primitives.primitive</a> * <span><a href="#type-ulambda">ulambda</a> list</span> * <a href="../Debuginfo/index.html#type-t">Debuginfo.t</a></span></code></li><li id="type-ulambda.Uswitch" class="def variant constructor anchored"><a href="#type-ulambda.Uswitch" class="anchor"></a><code><span>| </span><span><span class="constructor">Uswitch</span> <span class="keyword">of</span> <a href="#type-ulambda">ulambda</a> * <a href="#type-ulambda_switch">ulambda_switch</a> * <a href="../Debuginfo/index.html#type-t">Debuginfo.t</a></span></code></li><li id="type-ulambda.Ustringswitch" class="def variant constructor anchored"><a href="#type-ulambda.Ustringswitch" class="anchor"></a><code><span>| </span><span><span class="constructor">Ustringswitch</span> <span class="keyword">of</span> <a href="#type-ulambda">ulambda</a> * <span><span>(string * <a href="#type-ulambda">ulambda</a>)</span> list</span> * <span><a href="#type-ulambda">ulambda</a> option</span></span></code></li><li id="type-ulambda.Ustaticfail" class="def variant constructor anchored"><a href="#type-ulambda.Ustaticfail" class="anchor"></a><code><span>| </span><span><span class="constructor">Ustaticfail</span> <span class="keyword">of</span> int * <span><a href="#type-ulambda">ulambda</a> list</span></span></code></li><li id="type-ulambda.Ucatch" class="def variant constructor anchored"><a href="#type-ulambda.Ucatch" class="anchor"></a><code><span>| </span><span><span class="constructor">Ucatch</span> <span class="keyword">of</span> int
* <span><span>(<a href="../Backend_var/With_provenance/index.html#type-t">Backend_var.With_provenance.t</a> * <a href="../Lambda/index.html#type-value_kind">Lambda.value_kind</a>)</span> list</span>
* <a href="#type-ulambda">ulambda</a>
* <a href="#type-ulambda">ulambda</a></span></code></li><li id="type-ulambda.Utrywith" class="def variant constructor anchored"><a href="#type-ulambda.Utrywith" class="anchor"></a><code><span>| </span><span><span class="constructor">Utrywith</span> <span class="keyword">of</span> <a href="#type-ulambda">ulambda</a> * <a href="../Backend_var/With_provenance/index.html#type-t">Backend_var.With_provenance.t</a> * <a href="#type-ulambda">ulambda</a></span></code></li><li id="type-ulambda.Uifthenelse" class="def variant constructor anchored"><a href="#type-ulambda.Uifthenelse" class="anchor"></a><code><span>| </span><span><span class="constructor">Uifthenelse</span> <span class="keyword">of</span> <a href="#type-ulambda">ulambda</a> * <a href="#type-ulambda">ulambda</a> * <a href="#type-ulambda">ulambda</a></span></code></li><li id="type-ulambda.Usequence" class="def variant constructor anchored"><a href="#type-ulambda.Usequence" class="anchor"></a><code><span>| </span><span><span class="constructor">Usequence</span> <span class="keyword">of</span> <a href="#type-ulambda">ulambda</a> * <a href="#type-ulambda">ulambda</a></span></code></li><li id="type-ulambda.Uwhile" class="def variant constructor anchored"><a href="#type-ulambda.Uwhile" class="anchor"></a><code><span>| </span><span><span class="constructor">Uwhile</span> <span class="keyword">of</span> <a href="#type-ulambda">ulambda</a> * <a href="#type-ulambda">ulambda</a></span></code></li><li id="type-ulambda.Ufor" class="def variant constructor anchored"><a href="#type-ulambda.Ufor" class="anchor"></a><code><span>| </span><span><span class="constructor">Ufor</span> <span class="keyword">of</span> <a href="../Backend_var/With_provenance/index.html#type-t">Backend_var.With_provenance.t</a>
* <a href="#type-ulambda">ulambda</a>
* <a href="#type-ulambda">ulambda</a>
* <a href="../Asttypes/index.html#type-direction_flag">Asttypes.direction_flag</a>
* <a href="#type-ulambda">ulambda</a></span></code></li><li id="type-ulambda.Uassign" class="def variant constructor anchored"><a href="#type-ulambda.Uassign" class="anchor"></a><code><span>| </span><span><span class="constructor">Uassign</span> <span class="keyword">of</span> <a href="../Backend_var/index.html#type-t">Backend_var.t</a> * <a href="#type-ulambda">ulambda</a></span></code></li><li id="type-ulambda.Usend" class="def variant constructor anchored"><a href="#type-ulambda.Usend" class="anchor"></a><code><span>| </span><span><span class="constructor">Usend</span> <span class="keyword">of</span> <a href="../Lambda/index.html#type-meth_kind">Lambda.meth_kind</a> * <a href="#type-ulambda">ulambda</a> * <a href="#type-ulambda">ulambda</a> * <span><a href="#type-ulambda">ulambda</a> list</span> * <a href="../Debuginfo/index.html#type-t">Debuginfo.t</a></span></code></li><li id="type-ulambda.Uunreachable" class="def variant constructor anchored"><a href="#type-ulambda.Uunreachable" class="anchor"></a><code><span>| </span><span><span class="constructor">Uunreachable</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-ufunction"><a href="#type-ufunction" class="anchor"></a><code><span><span class="keyword">and</span> ufunction</span><span> = </span><span>{</span></code><ol><li id="type-ufunction.label" class="def record field anchored"><a href="#type-ufunction.label" class="anchor"></a><code><span>label : <a href="#type-function_label">function_label</a>;</span></code></li><li id="type-ufunction.arity" class="def record field anchored"><a href="#type-ufunction.arity" class="anchor"></a><code><span>arity : int;</span></code></li><li id="type-ufunction.params" class="def record field anchored"><a href="#type-ufunction.params" class="anchor"></a><code><span>params : <span><span>(<a href="../Backend_var/With_provenance/index.html#type-t">Backend_var.With_provenance.t</a> * <a href="../Lambda/index.html#type-value_kind">Lambda.value_kind</a>)</span> list</span>;</span></code></li><li id="type-ufunction.return" class="def record field anchored"><a href="#type-ufunction.return" class="anchor"></a><code><span>return : <a href="../Lambda/index.html#type-value_kind">Lambda.value_kind</a>;</span></code></li><li id="type-ufunction.body" class="def record field anchored"><a href="#type-ufunction.body" class="anchor"></a><code><span>body : <a href="#type-ulambda">ulambda</a>;</span></code></li><li id="type-ufunction.dbg" class="def record field anchored"><a href="#type-ufunction.dbg" class="anchor"></a><code><span>dbg : <a href="../Debuginfo/index.html#type-t">Debuginfo.t</a>;</span></code></li><li id="type-ufunction.env" class="def record field anchored"><a href="#type-ufunction.env" class="anchor"></a><code><span>env : <span><a href="../Backend_var/index.html#type-t">Backend_var.t</a> option</span>;</span></code></li><li id="type-ufunction.poll" class="def record field anchored"><a href="#type-ufunction.poll" class="anchor"></a><code><span>poll : <a href="../Lambda/index.html#type-poll_attribute">Lambda.poll_attribute</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-ulambda_switch"><a href="#type-ulambda_switch" class="anchor"></a><code><span><span class="keyword">and</span> ulambda_switch</span><span> = </span><span>{</span></code><ol><li id="type-ulambda_switch.us_index_consts" class="def record field anchored"><a href="#type-ulambda_switch.us_index_consts" class="anchor"></a><code><span>us_index_consts : <span>int array</span>;</span></code></li><li id="type-ulambda_switch.us_actions_consts" class="def record field anchored"><a href="#type-ulambda_switch.us_actions_consts" class="anchor"></a><code><span>us_actions_consts : <span><a href="#type-ulambda">ulambda</a> array</span>;</span></code></li><li id="type-ulambda_switch.us_index_blocks" class="def record field anchored"><a href="#type-ulambda_switch.us_index_blocks" class="anchor"></a><code><span>us_index_blocks : <span>int array</span>;</span></code></li><li id="type-ulambda_switch.us_actions_blocks" class="def record field anchored"><a href="#type-ulambda_switch.us_actions_blocks" class="anchor"></a><code><span>us_actions_blocks : <span><a href="#type-ulambda">ulambda</a> array</span>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-function_description"><a href="#type-function_description" class="anchor"></a><code><span><span class="keyword">type</span> function_description</span><span> = </span><span>{</span></code><ol><li id="type-function_description.fun_label" class="def record field anchored"><a href="#type-function_description.fun_label" class="anchor"></a><code><span>fun_label : <a href="#type-function_label">function_label</a>;</span></code></li><li id="type-function_description.fun_arity" class="def record field anchored"><a href="#type-function_description.fun_arity" class="anchor"></a><code><span>fun_arity : int;</span></code></li><li id="type-function_description.fun_closed" class="def record field anchored"><a href="#type-function_description.fun_closed" class="anchor"></a><code><span><span class="keyword">mutable</span> fun_closed : bool;</span></code></li><li id="type-function_description.fun_inline" class="def record field anchored"><a href="#type-function_description.fun_inline" class="anchor"></a><code><span><span class="keyword">mutable</span> fun_inline : <span><span>(<span><a href="../Backend_var/With_provenance/index.html#type-t">Backend_var.With_provenance.t</a> list</span> * <a href="#type-ulambda">ulambda</a>)</span> option</span>;</span></code></li><li id="type-function_description.fun_float_const_prop" class="def record field anchored"><a href="#type-function_description.fun_float_const_prop" class="anchor"></a><code><span><span class="keyword">mutable</span> fun_float_const_prop : bool;</span></code></li><li id="type-function_description.fun_poll" class="def record field anchored"><a href="#type-function_description.fun_poll" class="anchor"></a><code><span>fun_poll : <a href="../Lambda/index.html#type-poll_attribute">Lambda.poll_attribute</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-value_approximation"><a href="#type-value_approximation" class="anchor"></a><code><span><span class="keyword">type</span> value_approximation</span><span> = </span></code><ol><li id="type-value_approximation.Value_closure" class="def variant constructor anchored"><a href="#type-value_approximation.Value_closure" class="anchor"></a><code><span>| </span><span><span class="constructor">Value_closure</span> <span class="keyword">of</span> <a href="#type-function_description">function_description</a> * <a href="#type-value_approximation">value_approximation</a></span></code></li><li id="type-value_approximation.Value_tuple" class="def variant constructor anchored"><a href="#type-value_approximation.Value_tuple" class="anchor"></a><code><span>| </span><span><span class="constructor">Value_tuple</span> <span class="keyword">of</span> <span><a href="#type-value_approximation">value_approximation</a> array</span></span></code></li><li id="type-value_approximation.Value_unknown" class="def variant constructor anchored"><a href="#type-value_approximation.Value_unknown" class="anchor"></a><code><span>| </span><span><span class="constructor">Value_unknown</span></span></code></li><li id="type-value_approximation.Value_const" class="def variant constructor anchored"><a href="#type-value_approximation.Value_const" class="anchor"></a><code><span>| </span><span><span class="constructor">Value_const</span> <span class="keyword">of</span> <a href="#type-uconstant">uconstant</a></span></code></li><li id="type-value_approximation.Value_global_field" class="def variant constructor anchored"><a href="#type-value_approximation.Value_global_field" class="anchor"></a><code><span>| </span><span><span class="constructor">Value_global_field</span> <span class="keyword">of</span> string * int</span></code></li></ol></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare_structured_constants"><a href="#val-compare_structured_constants" class="anchor"></a><code><span><span class="keyword">val</span> compare_structured_constants :
<span><a href="#type-ustructured_constant">ustructured_constant</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-ustructured_constant">ustructured_constant</a> <span class="arrow">&#45;&gt;</span></span>
int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare_constants"><a href="#val-compare_constants" class="anchor"></a><code><span><span class="keyword">val</span> compare_constants : <span><a href="#type-uconstant">uconstant</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-uconstant">uconstant</a> <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-usymbol_provenance"><a href="#type-usymbol_provenance" class="anchor"></a><code><span><span class="keyword">type</span> usymbol_provenance</span><span> = </span><span>{</span></code><ol><li id="type-usymbol_provenance.original_idents" class="def record field anchored"><a href="#type-usymbol_provenance.original_idents" class="anchor"></a><code><span>original_idents : <span><a href="../Ident/index.html#type-t">Ident.t</a> list</span>;</span></code></li><li id="type-usymbol_provenance.module_path" class="def record field anchored"><a href="#type-usymbol_provenance.module_path" class="anchor"></a><code><span>module_path : <a href="../Path/index.html#type-t">Path.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-uconstant_block_field"><a href="#type-uconstant_block_field" class="anchor"></a><code><span><span class="keyword">type</span> uconstant_block_field</span><span> = </span></code><ol><li id="type-uconstant_block_field.Uconst_field_ref" class="def variant constructor anchored"><a href="#type-uconstant_block_field.Uconst_field_ref" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_field_ref</span> <span class="keyword">of</span> string</span></code></li><li id="type-uconstant_block_field.Uconst_field_int" class="def variant constructor anchored"><a href="#type-uconstant_block_field.Uconst_field_int" class="anchor"></a><code><span>| </span><span><span class="constructor">Uconst_field_int</span> <span class="keyword">of</span> int</span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-preallocated_block"><a href="#type-preallocated_block" class="anchor"></a><code><span><span class="keyword">type</span> preallocated_block</span><span> = </span><span>{</span></code><ol><li id="type-preallocated_block.symbol" class="def record field anchored"><a href="#type-preallocated_block.symbol" class="anchor"></a><code><span>symbol : string;</span></code></li><li id="type-preallocated_block.exported" class="def record field anchored"><a href="#type-preallocated_block.exported" class="anchor"></a><code><span>exported : bool;</span></code></li><li id="type-preallocated_block.tag" class="def record field anchored"><a href="#type-preallocated_block.tag" class="anchor"></a><code><span>tag : int;</span></code></li><li id="type-preallocated_block.fields" class="def record field anchored"><a href="#type-preallocated_block.fields" class="anchor"></a><code><span>fields : <span><span><a href="#type-uconstant_block_field">uconstant_block_field</a> option</span> list</span>;</span></code></li><li id="type-preallocated_block.provenance" class="def record field anchored"><a href="#type-preallocated_block.provenance" class="anchor"></a><code><span>provenance : <span><a href="#type-usymbol_provenance">usymbol_provenance</a> option</span>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-preallocated_constant"><a href="#type-preallocated_constant" class="anchor"></a><code><span><span class="keyword">type</span> preallocated_constant</span><span> = </span><span>{</span></code><ol><li id="type-preallocated_constant.symbol" class="def record field anchored"><a href="#type-preallocated_constant.symbol" class="anchor"></a><code><span>symbol : string;</span></code></li><li id="type-preallocated_constant.exported" class="def record field anchored"><a href="#type-preallocated_constant.exported" class="anchor"></a><code><span>exported : bool;</span></code></li><li id="type-preallocated_constant.definition" class="def record field anchored"><a href="#type-preallocated_constant.definition" class="anchor"></a><code><span>definition : <a href="#type-ustructured_constant">ustructured_constant</a>;</span></code></li><li id="type-preallocated_constant.provenance" class="def record field anchored"><a href="#type-preallocated_constant.provenance" class="anchor"></a><code><span>provenance : <span><a href="#type-usymbol_provenance">usymbol_provenance</a> option</span>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-with_constants"><a href="#type-with_constants" class="anchor"></a><code><span><span class="keyword">type</span> with_constants</span><span> =
<a href="#type-ulambda">ulambda</a> * <span><a href="#type-preallocated_block">preallocated_block</a> list</span> * <span><a href="#type-preallocated_constant">preallocated_constant</a> list</span></span></code></div></div></div></body></html>