mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-18 08:36:43 -05:00
80 lines
152 KiB
HTML
80 lines
152 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Typedtree (ocaml.Typedtree)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.2"/><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> » Typedtree</nav><header class="odoc-preamble"><h1>Module <code><span>Typedtree</span></code></h1><p>Abstract syntax tree after typing</p></header><nav class="odoc-toc"><ul><li><a href="#extension-points">Extension points</a></li><li><a href="#core-language">Core language</a></li></ul></nav><div class="odoc-content"><p>By comparison with <a href="../Parsetree/index.html"><code>Parsetree</code></a>:</p><ul><li>Every <code>Longindent.t</code> is accompanied by a resolved <a href="../Path/index.html#type-t"><code>Path.t</code></a>.</li></ul><div class="odoc-spec"><div class="spec type anchored" id="type-partial"><a href="#type-partial" class="anchor"></a><code><span><span class="keyword">type</span> partial</span><span> = </span></code><ol><li id="type-partial.Partial" class="def variant constructor anchored"><a href="#type-partial.Partial" class="anchor"></a><code><span>| </span><span><span class="constructor">Partial</span></span></code></li><li id="type-partial.Total" class="def variant constructor anchored"><a href="#type-partial.Total" class="anchor"></a><code><span>| </span><span><span class="constructor">Total</span></span></code></li></ol></div></div><h2 id="extension-points"><a href="#extension-points" class="anchor"></a>Extension points</h2><div class="odoc-spec"><div class="spec type anchored" id="type-attribute"><a href="#type-attribute" class="anchor"></a><code><span><span class="keyword">type</span> attribute</span><span> = <a href="../Parsetree/index.html#type-attribute">Parsetree.attribute</a></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-attributes"><a href="#type-attributes" class="anchor"></a><code><span><span class="keyword">type</span> attributes</span><span> = <span><a href="#type-attribute">attribute</a> list</span></span></code></div></div><h2 id="core-language"><a href="#core-language" class="anchor"></a>Core language</h2><div class="odoc-spec"><div class="spec type anchored" id="type-value"><a href="#type-value" class="anchor"></a><code><span><span class="keyword">type</span> value</span><span> = </span></code><ol><li id="type-value.Value_pattern" class="def variant constructor anchored"><a href="#type-value.Value_pattern" class="anchor"></a><code><span>| </span><span><span class="constructor">Value_pattern</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-computation"><a href="#type-computation" class="anchor"></a><code><span><span class="keyword">type</span> computation</span><span> = </span></code><ol><li id="type-computation.Computation_pattern" class="def variant constructor anchored"><a href="#type-computation.Computation_pattern" class="anchor"></a><code><span>| </span><span><span class="constructor">Computation_pattern</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-pattern_category"><a href="#type-pattern_category" class="anchor"></a><code><span><span class="keyword">type</span> <span>_ pattern_category</span></span><span> = </span></code><ol><li id="type-pattern_category.Value" class="def variant constructor anchored"><a href="#type-pattern_category.Value" class="anchor"></a><code><span>| </span><span><span class="constructor">Value</span> : <span><a href="#type-value">value</a> <a href="#type-pattern_category">pattern_category</a></span></span></code></li><li id="type-pattern_category.Computation" class="def variant constructor anchored"><a href="#type-pattern_category.Computation" class="anchor"></a><code><span>| </span><span><span class="constructor">Computation</span> : <span><a href="#type-computation">computation</a> <a href="#type-pattern_category">pattern_category</a></span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-pattern"><a href="#type-pattern" class="anchor"></a><code><span><span class="keyword">type</span> pattern</span><span> = <span><a href="#type-value">value</a> <a href="#type-general_pattern">general_pattern</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-general_pattern"><a href="#type-general_pattern" class="anchor"></a><code><span><span class="keyword">and</span> <span>'k general_pattern</span></span><span> = <span><span><span class="type-var">'k</span> <a href="#type-pattern_desc">pattern_desc</a></span> <a href="#type-pattern_data">pattern_data</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-pattern_data"><a href="#type-pattern_data" class="anchor"></a><code><span><span class="keyword">and</span> <span>'a pattern_data</span></span><span> = </span><span>{</span></code><ol><li id="type-pattern_data.pat_desc" class="def record field anchored"><a href="#type-pattern_data.pat_desc" class="anchor"></a><code><span>pat_desc : <span class="type-var">'a</span>;</span></code></li><li id="type-pattern_data.pat_loc" class="def record field anchored"><a href="#type-pattern_data.pat_loc" class="anchor"></a><code><span>pat_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-pattern_data.pat_extra" class="def record field anchored"><a href="#type-pattern_data.pat_extra" class="anchor"></a><code><span>pat_extra : <span><span>(<a href="#type-pat_extra">pat_extra</a> * <a href="../Location/index.html#type-t">Location.t</a> * <a href="#type-attributes">attributes</a>)</span> list</span>;</span></code></li><li id="type-pattern_data.pat_type" class="def record field anchored"><a href="#type-pattern_data.pat_type" class="anchor"></a><code><span>pat_type : <a href="../Types/index.html#type-type_expr">Types.type_expr</a>;</span></code></li><li id="type-pattern_data.pat_env" class="def record field anchored"><a href="#type-pattern_data.pat_env" class="anchor"></a><code><span>pat_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li><li id="type-pattern_data.pat_attributes" class="def record field anchored"><a href="#type-pattern_data.pat_attributes" class="anchor"></a><code><span>pat_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-pat_extra"><a href="#type-pat_extra" class="anchor"></a><code><span><span class="keyword">and</span> pat_extra</span><span> = </span></code><ol><li id="type-pat_extra.Tpat_constraint" class="def variant constructor anchored"><a href="#type-pat_extra.Tpat_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_constraint</span> <span class="keyword">of</span> <a href="#type-core_type">core_type</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>P : T <code> pat_desc = P
|
||
; pat_extra = (Tpat_constraint T, _, _) :: ... </code></p><span class="comment-delim">*)</span></div></li><li id="type-pat_extra.Tpat_type" class="def variant constructor anchored"><a href="#type-pat_extra.Tpat_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_type</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>#tconst <code> pat_desc = disjunction
|
||
; pat_extra = (Tpat_type (P, "tconst"), _, _) :: ...</code></p><p>where <code>disjunction</code> is a <code>Tpat_or _</code> representing the branches of <code>tconst</code>.</p><span class="comment-delim">*)</span></div></li><li id="type-pat_extra.Tpat_open" class="def variant constructor anchored"><a href="#type-pat_extra.Tpat_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_open</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="../Env/index.html#type-t">Env.t</a></span></code></li><li id="type-pat_extra.Tpat_unpack" class="def variant constructor anchored"><a href="#type-pat_extra.Tpat_unpack" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_unpack</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>(module P) <code> pat_desc = Tpat_var "P"
|
||
; pat_extra = (Tpat_unpack, _, _) :: ... </code></p><span class="comment-delim">*)</span></div></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-pattern_desc"><a href="#type-pattern_desc" class="anchor"></a><code><span><span class="keyword">and</span> <span>'k pattern_desc</span></span><span> = </span></code><ol><li id="type-pattern_desc.Tpat_any" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_any" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_any</span> : <span><a href="#type-value">value</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>_</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_var" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_var" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_var</span> : <a href="../Ident/index.html#type-t">Ident.t</a> * <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> <span class="arrow">-></span> <span><a href="#type-value">value</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>x</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_alias" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_alias" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_alias</span> : <span><a href="#type-value">value</a> <a href="#type-general_pattern">general_pattern</a></span>
|
||
* <a href="../Ident/index.html#type-t">Ident.t</a>
|
||
* <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> <span class="arrow">-></span> <span><a href="#type-value">value</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>P as a</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_constant" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_constant" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_constant</span> : <a href="../Asttypes/index.html#type-constant">Asttypes.constant</a> <span class="arrow">-></span> <span><a href="#type-value">value</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>1, 'a', "true", 1.0, 1l, 1L, 1n</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_tuple" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_tuple" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_tuple</span> : <span><span><a href="#type-value">value</a> <a href="#type-general_pattern">general_pattern</a></span> list</span> <span class="arrow">-></span> <span><a href="#type-value">value</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>(P1, ..., Pn)</p><p>Invariant: n >= 2</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_construct" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_construct" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_construct</span> : <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>
|
||
* <a href="../Types/index.html#type-constructor_description">Types.constructor_description</a>
|
||
* <span><span><a href="#type-value">value</a> <a href="#type-general_pattern">general_pattern</a></span> list</span>
|
||
* <span><span>(<span><span><a href="../Ident/index.html#type-t">Ident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> list</span> * <a href="#type-core_type">core_type</a>)</span> option</span> <span class="arrow">-></span> <span><a href="#type-value">value</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>C (, None) C P (<code>P</code>, None) C (P1, ..., Pn) (<code>P1; ...; Pn</code>, None) C (P : t) (<code>P</code>, Some (, t)) C (P1, ..., Pn : t) (<code>P1; ...; Pn</code>, Some (, t)) C (type a) (P : t) (<code>P</code>, Some (<code>a</code>, t)) C (type a) (P1, ..., Pn : t) (<code>P1; ...; Pn</code>, Some (<code>a</code>, t))</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_variant" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_variant" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_variant</span> : <a href="../Asttypes/index.html#type-label">Asttypes.label</a>
|
||
* <span><span><a href="#type-value">value</a> <a href="#type-general_pattern">general_pattern</a></span> option</span>
|
||
* <span><a href="../Types/index.html#type-row_desc">Types.row_desc</a> <a href="../Stdlib/index.html#type-ref">ref</a></span> <span class="arrow">-></span> <span><a href="#type-value">value</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>`A (None) `A P (Some P)</p><p>See <a href="../Types/index.html#type-row_desc"><code>Types.row_desc</code></a> for an explanation of the last parameter.</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_record" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_record" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_record</span> : <span><span>(<span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>
|
||
* <a href="../Types/index.html#type-label_description">Types.label_description</a>
|
||
* <span><a href="#type-value">value</a> <a href="#type-general_pattern">general_pattern</a></span>)</span>
|
||
list</span>
|
||
* <a href="../Asttypes/index.html#type-closed_flag">Asttypes.closed_flag</a> <span class="arrow">-></span> <span><a href="#type-value">value</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p><code> l1=P1; ...; ln=Pn </code> (flag = Closed) <code> l1=P1; ...; ln=Pn; _</code> (flag = Open)</p><p>Invariant: n > 0</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_array" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_array" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_array</span> : <span><span><a href="#type-value">value</a> <a href="#type-general_pattern">general_pattern</a></span> list</span> <span class="arrow">-></span> <span><a href="#type-value">value</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p><code>| P1; ...; Pn |</code></p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_lazy" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_lazy" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_lazy</span> : <span><a href="#type-value">value</a> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span> <span><a href="#type-value">value</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>lazy P</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_value" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_value" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_value</span> : <a href="#type-tpat_value_argument">tpat_value_argument</a> <span class="arrow">-></span> <span><a href="#type-computation">computation</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>P</p><p>Invariant: Tpat_value pattern should not carry pat_attributes or pat_extra metadata coming from user syntax, which must be on the inner pattern node -- to facilitate searching for a certain value pattern constructor with a specific attributed.</p><p>To enforce this restriction, we made the argument of the Tpat_value constructor a private synonym of <code>pattern</code>, requiring you to use the <code>as_computation_pattern</code> function below instead of using the <code>Tpat_value</code> constructor directly.</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_exception" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_exception" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_exception</span> : <span><a href="#type-value">value</a> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span> <span><a href="#type-computation">computation</a> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>exception P</p><span class="comment-delim">*)</span></div></li><li id="type-pattern_desc.Tpat_or" class="def variant constructor anchored"><a href="#type-pattern_desc.Tpat_or" class="anchor"></a><code><span>| </span><span><span class="constructor">Tpat_or</span> : <span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span>
|
||
* <span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span>
|
||
* <span><a href="../Types/index.html#type-row_desc">Types.row_desc</a> option</span> <span class="arrow">-></span> <span><span class="type-var">'k</span> <a href="#type-pattern_desc">pattern_desc</a></span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>P1 | P2</p><p><code>row_desc</code> = <code>Some _</code> when translating <code>Ppat_type _</code>, <code>None</code> otherwise.</p><span class="comment-delim">*)</span></div></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-tpat_value_argument"><a href="#type-tpat_value_argument" class="anchor"></a><code><span><span class="keyword">and</span> tpat_value_argument</span><span> = <span class="keyword">private</span> <span><a href="#type-value">value</a> <a href="#type-general_pattern">general_pattern</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-expression"><a href="#type-expression" class="anchor"></a><code><span><span class="keyword">and</span> expression</span><span> = </span><span>{</span></code><ol><li id="type-expression.exp_desc" class="def record field anchored"><a href="#type-expression.exp_desc" class="anchor"></a><code><span>exp_desc : <a href="#type-expression_desc">expression_desc</a>;</span></code></li><li id="type-expression.exp_loc" class="def record field anchored"><a href="#type-expression.exp_loc" class="anchor"></a><code><span>exp_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-expression.exp_extra" class="def record field anchored"><a href="#type-expression.exp_extra" class="anchor"></a><code><span>exp_extra : <span><span>(<a href="#type-exp_extra">exp_extra</a> * <a href="../Location/index.html#type-t">Location.t</a> * <a href="#type-attributes">attributes</a>)</span> list</span>;</span></code></li><li id="type-expression.exp_type" class="def record field anchored"><a href="#type-expression.exp_type" class="anchor"></a><code><span>exp_type : <a href="../Types/index.html#type-type_expr">Types.type_expr</a>;</span></code></li><li id="type-expression.exp_env" class="def record field anchored"><a href="#type-expression.exp_env" class="anchor"></a><code><span>exp_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li><li id="type-expression.exp_attributes" class="def record field anchored"><a href="#type-expression.exp_attributes" class="anchor"></a><code><span>exp_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-exp_extra"><a href="#type-exp_extra" class="anchor"></a><code><span><span class="keyword">and</span> exp_extra</span><span> = </span></code><ol><li id="type-exp_extra.Texp_constraint" class="def variant constructor anchored"><a href="#type-exp_extra.Texp_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_constraint</span> <span class="keyword">of</span> <a href="#type-core_type">core_type</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>E : T</p><span class="comment-delim">*)</span></div></li><li id="type-exp_extra.Texp_coerce" class="def variant constructor anchored"><a href="#type-exp_extra.Texp_coerce" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_coerce</span> <span class="keyword">of</span> <span><a href="#type-core_type">core_type</a> option</span> * <a href="#type-core_type">core_type</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>E :> T <code>Texp_coerce (None, T)</code> E : T0 :> T <code>Texp_coerce (Some T0, T)</code></p><span class="comment-delim">*)</span></div></li><li id="type-exp_extra.Texp_poly" class="def variant constructor anchored"><a href="#type-exp_extra.Texp_poly" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_poly</span> <span class="keyword">of</span> <span><a href="#type-core_type">core_type</a> option</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Used for method bodies.</p><span class="comment-delim">*)</span></div></li><li id="type-exp_extra.Texp_newtype" class="def variant constructor anchored"><a href="#type-exp_extra.Texp_newtype" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_newtype</span> <span class="keyword">of</span> string</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>fun (type t) -></p><span class="comment-delim">*)</span></div></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-expression_desc"><a href="#type-expression_desc" class="anchor"></a><code><span><span class="keyword">and</span> expression_desc</span><span> = </span></code><ol><li id="type-expression_desc.Texp_ident" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_ident" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_ident</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="../Types/index.html#type-value_description">Types.value_description</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>x M.x</p><span class="comment-delim">*)</span></div></li><li id="type-expression_desc.Texp_constant" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_constant" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_constant</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-constant">Asttypes.constant</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>1, 'a', "true", 1.0, 1l, 1L, 1n</p><span class="comment-delim">*)</span></div></li><li id="type-expression_desc.Texp_let" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_let" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_let</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-rec_flag">Asttypes.rec_flag</a> * <span><a href="#type-value_binding">value_binding</a> list</span> * <a href="#type-expression">expression</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>let P1 = E1 and ... and Pn = EN in E (flag = Nonrecursive) let rec P1 = E1 and ... and Pn = EN in E (flag = Recursive)</p><span class="comment-delim">*)</span></div></li><li id="type-expression_desc.Texp_function" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_function" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_function</span> <span class="keyword">of</span> </span><span>{</span></code><ol><li id="type-expression_desc.arg_label" class="def record field anchored"><a href="#type-expression_desc.arg_label" class="anchor"></a><code><span>arg_label : <a href="../Asttypes/index.html#type-arg_label">Asttypes.arg_label</a>;</span></code></li><li id="type-expression_desc.param" class="def record field anchored"><a href="#type-expression_desc.param" class="anchor"></a><code><span>param : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-expression_desc.cases" class="def record field anchored"><a href="#type-expression_desc.cases" class="anchor"></a><code><span>cases : <span><span><a href="#type-value">value</a> <a href="#type-case">case</a></span> list</span>;</span></code></li><li id="type-expression_desc.partial" class="def record field anchored"><a href="#type-expression_desc.partial" class="anchor"></a><code><span>partial : <a href="#type-partial">partial</a>;</span></code></li></ol><code><span>}</span></code><div class="def-doc"><span class="comment-delim">(*</span><p><code>Pexp_fun</code> and <code>Pexp_function</code> both translate to <code>Texp_function</code>. See <a href="../Parsetree/index.html"><code>Parsetree</code></a> for more details.</p><p><code>param</code> is the identifier that is to be used to name the parameter of the function.</p><p>partial = <code>Partial</code> if the pattern match is partial <code>Total</code> otherwise.</p><span class="comment-delim">*)</span></div></li><li id="type-expression_desc.Texp_apply" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_apply" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_apply</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <span><span>(<a href="../Asttypes/index.html#type-arg_label">Asttypes.arg_label</a> * <span><a href="#type-expression">expression</a> option</span>)</span> list</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>E0 ~l1:E1 ... ~ln:En</p><p>The expression can be None if the expression is abstracted over this argument. It currently appears when a label is applied.</p><p>For example: let f x ~y = x + y in f ~y:3</p><p>The resulting typedtree for the application is: Texp_apply (Texp_ident "f/1037", <code>(Nolabel, None);
|
||
(Labelled "y", Some (Texp_constant Const_int 3))
|
||
</code>)</p><span class="comment-delim">*)</span></div></li><li id="type-expression_desc.Texp_match" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_match" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_match</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <span><span><a href="#type-computation">computation</a> <a href="#type-case">case</a></span> list</span> * <a href="#type-partial">partial</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>match E0 with | P1 -> E1 | P2 | exception P3 -> E2 | exception P4 -> E3</p><p><code>Texp_match (E0, [(P1, E1); (P2 | exception P3, E2);
|
||
(exception P4, E3)], _)</code></p><span class="comment-delim">*)</span></div></li><li id="type-expression_desc.Texp_try" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_try" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_try</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <span><span><a href="#type-value">value</a> <a href="#type-case">case</a></span> list</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>try E with P1 -> E1 | ... | PN -> EN</p><span class="comment-delim">*)</span></div></li><li id="type-expression_desc.Texp_tuple" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_tuple" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_tuple</span> <span class="keyword">of</span> <span><a href="#type-expression">expression</a> list</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>(E1, ..., EN)</p><span class="comment-delim">*)</span></div></li><li id="type-expression_desc.Texp_construct" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_construct" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_construct</span> <span class="keyword">of</span> <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>
|
||
* <a href="../Types/index.html#type-constructor_description">Types.constructor_description</a>
|
||
* <span><a href="#type-expression">expression</a> list</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>C C E <code>E</code> C (E1, ..., En) <code>E1;...;En</code></p><span class="comment-delim">*)</span></div></li><li id="type-expression_desc.Texp_variant" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_variant" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_variant</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-label">Asttypes.label</a> * <span><a href="#type-expression">expression</a> option</span></span></code></li><li id="type-expression_desc.Texp_record" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_record" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_record</span> <span class="keyword">of</span> </span><span>{</span></code><ol><li id="type-expression_desc.fields" class="def record field anchored"><a href="#type-expression_desc.fields" class="anchor"></a><code><span>fields : <span><span>(<a href="../Types/index.html#type-label_description">Types.label_description</a> * <a href="#type-record_label_definition">record_label_definition</a>)</span> array</span>;</span></code></li><li id="type-expression_desc.representation" class="def record field anchored"><a href="#type-expression_desc.representation" class="anchor"></a><code><span>representation : <a href="../Types/index.html#type-record_representation">Types.record_representation</a>;</span></code></li><li id="type-expression_desc.extended_expression" class="def record field anchored"><a href="#type-expression_desc.extended_expression" class="anchor"></a><code><span>extended_expression : <span><a href="#type-expression">expression</a> option</span>;</span></code></li></ol><code><span>}</span></code><div class="def-doc"><span class="comment-delim">(*</span><p><code> l1=P1; ...; ln=Pn </code> (extended_expression = None) <code> E0 with l1=P1; ...; ln=Pn </code> (extended_expression = Some E0)</p><p>Invariant: n > 0</p><p>If the type is <code> l1: t1; l2: t2 </code>, the expression <code> E0 with t2=P2 </code> is represented as Texp_record <code> fields = [| l1, Kept t1; l2 Override P2 |]; representation;
|
||
extended_expression = Some E0 </code></p><span class="comment-delim">*)</span></div></li><li id="type-expression_desc.Texp_field" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_field" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_field</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="../Types/index.html#type-label_description">Types.label_description</a></span></code></li><li id="type-expression_desc.Texp_setfield" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_setfield" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_setfield</span> <span class="keyword">of</span> <a href="#type-expression">expression</a>
|
||
* <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>
|
||
* <a href="../Types/index.html#type-label_description">Types.label_description</a>
|
||
* <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Texp_array" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_array" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_array</span> <span class="keyword">of</span> <span><a href="#type-expression">expression</a> list</span></span></code></li><li id="type-expression_desc.Texp_ifthenelse" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_ifthenelse" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_ifthenelse</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <a href="#type-expression">expression</a> * <span><a href="#type-expression">expression</a> option</span></span></code></li><li id="type-expression_desc.Texp_sequence" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_sequence" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_sequence</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Texp_while" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_while" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_while</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Texp_for" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_for" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_for</span> <span class="keyword">of</span> <a href="../Ident/index.html#type-t">Ident.t</a>
|
||
* <a href="../Parsetree/index.html#type-pattern">Parsetree.pattern</a>
|
||
* <a href="#type-expression">expression</a>
|
||
* <a href="#type-expression">expression</a>
|
||
* <a href="../Asttypes/index.html#type-direction_flag">Asttypes.direction_flag</a>
|
||
* <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Texp_send" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_send" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_send</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <a href="#type-meth">meth</a></span></code></li><li id="type-expression_desc.Texp_new" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_new" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_new</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="../Types/index.html#type-class_declaration">Types.class_declaration</a></span></code></li><li id="type-expression_desc.Texp_instvar" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_instvar" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_instvar</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <a href="../Path/index.html#type-t">Path.t</a> * <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></li><li id="type-expression_desc.Texp_setinstvar" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_setinstvar" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_setinstvar</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <a href="../Path/index.html#type-t">Path.t</a> * <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Texp_override" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_override" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_override</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><span>(<a href="../Ident/index.html#type-t">Ident.t</a> * <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-expression">expression</a>)</span> list</span></span></code></li><li id="type-expression_desc.Texp_letmodule" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_letmodule" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_letmodule</span> <span class="keyword">of</span> <span><a href="../Ident/index.html#type-t">Ident.t</a> option</span>
|
||
* <span><span>string option</span> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>
|
||
* <a href="../Types/index.html#type-module_presence">Types.module_presence</a>
|
||
* <a href="#type-module_expr">module_expr</a>
|
||
* <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Texp_letexception" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_letexception" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_letexception</span> <span class="keyword">of</span> <a href="#type-extension_constructor">extension_constructor</a> * <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Texp_assert" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_assert" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_assert</span> <span class="keyword">of</span> <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Texp_lazy" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_lazy" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_lazy</span> <span class="keyword">of</span> <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Texp_object" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_object" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_object</span> <span class="keyword">of</span> <a href="#type-class_structure">class_structure</a> * <span>string list</span></span></code></li><li id="type-expression_desc.Texp_pack" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_pack" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_pack</span> <span class="keyword">of</span> <a href="#type-module_expr">module_expr</a></span></code></li><li id="type-expression_desc.Texp_letop" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_letop" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_letop</span> <span class="keyword">of</span> </span><span>{</span></code><ol><li id="type-expression_desc.let_" class="def record field anchored"><a href="#type-expression_desc.let_" class="anchor"></a><code><span>let_ : <a href="#type-binding_op">binding_op</a>;</span></code></li><li id="type-expression_desc.ands" class="def record field anchored"><a href="#type-expression_desc.ands" class="anchor"></a><code><span>ands : <span><a href="#type-binding_op">binding_op</a> list</span>;</span></code></li><li id="type-expression_desc.param" class="def record field anchored"><a href="#type-expression_desc.param" class="anchor"></a><code><span>param : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-expression_desc.body" class="def record field anchored"><a href="#type-expression_desc.body" class="anchor"></a><code><span>body : <span><a href="#type-value">value</a> <a href="#type-case">case</a></span>;</span></code></li><li id="type-expression_desc.partial" class="def record field anchored"><a href="#type-expression_desc.partial" class="anchor"></a><code><span>partial : <a href="#type-partial">partial</a>;</span></code></li></ol><code><span>}</span></code></li><li id="type-expression_desc.Texp_unreachable" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_unreachable" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_unreachable</span></span></code></li><li id="type-expression_desc.Texp_extension_constructor" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_extension_constructor" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_extension_constructor</span> <span class="keyword">of</span> <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="../Path/index.html#type-t">Path.t</a></span></code></li><li id="type-expression_desc.Texp_open" class="def variant constructor anchored"><a href="#type-expression_desc.Texp_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Texp_open</span> <span class="keyword">of</span> <a href="#type-open_declaration">open_declaration</a> * <a href="#type-expression">expression</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>let open<code>!</code> M in e</p><span class="comment-delim">*)</span></div></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-meth"><a href="#type-meth" class="anchor"></a><code><span><span class="keyword">and</span> meth</span><span> = </span></code><ol><li id="type-meth.Tmeth_name" class="def variant constructor anchored"><a href="#type-meth.Tmeth_name" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmeth_name</span> <span class="keyword">of</span> string</span></code></li><li id="type-meth.Tmeth_val" class="def variant constructor anchored"><a href="#type-meth.Tmeth_val" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmeth_val</span> <span class="keyword">of</span> <a href="../Ident/index.html#type-t">Ident.t</a></span></code></li><li id="type-meth.Tmeth_ancestor" class="def variant constructor anchored"><a href="#type-meth.Tmeth_ancestor" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmeth_ancestor</span> <span class="keyword">of</span> <a href="../Ident/index.html#type-t">Ident.t</a> * <a href="../Path/index.html#type-t">Path.t</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-case"><a href="#type-case" class="anchor"></a><code><span><span class="keyword">and</span> <span>'k case</span></span><span> = </span><span>{</span></code><ol><li id="type-case.c_lhs" class="def record field anchored"><a href="#type-case.c_lhs" class="anchor"></a><code><span>c_lhs : <span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span>;</span></code></li><li id="type-case.c_guard" class="def record field anchored"><a href="#type-case.c_guard" class="anchor"></a><code><span>c_guard : <span><a href="#type-expression">expression</a> option</span>;</span></code></li><li id="type-case.c_rhs" class="def record field anchored"><a href="#type-case.c_rhs" class="anchor"></a><code><span>c_rhs : <a href="#type-expression">expression</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-record_label_definition"><a href="#type-record_label_definition" class="anchor"></a><code><span><span class="keyword">and</span> record_label_definition</span><span> = </span></code><ol><li id="type-record_label_definition.Kept" class="def variant constructor anchored"><a href="#type-record_label_definition.Kept" class="anchor"></a><code><span>| </span><span><span class="constructor">Kept</span> <span class="keyword">of</span> <a href="../Types/index.html#type-type_expr">Types.type_expr</a> * <a href="../Asttypes/index.html#type-mutable_flag">Asttypes.mutable_flag</a></span></code></li><li id="type-record_label_definition.Overridden" class="def variant constructor anchored"><a href="#type-record_label_definition.Overridden" class="anchor"></a><code><span>| </span><span><span class="constructor">Overridden</span> <span class="keyword">of</span> <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-expression">expression</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-binding_op"><a href="#type-binding_op" class="anchor"></a><code><span><span class="keyword">and</span> binding_op</span><span> = </span><span>{</span></code><ol><li id="type-binding_op.bop_op_path" class="def record field anchored"><a href="#type-binding_op.bop_op_path" class="anchor"></a><code><span>bop_op_path : <a href="../Path/index.html#type-t">Path.t</a>;</span></code></li><li id="type-binding_op.bop_op_name" class="def record field anchored"><a href="#type-binding_op.bop_op_name" class="anchor"></a><code><span>bop_op_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-binding_op.bop_op_val" class="def record field anchored"><a href="#type-binding_op.bop_op_val" class="anchor"></a><code><span>bop_op_val : <a href="../Types/index.html#type-value_description">Types.value_description</a>;</span></code></li><li id="type-binding_op.bop_op_type" class="def record field anchored"><a href="#type-binding_op.bop_op_type" class="anchor"></a><code><span>bop_op_type : <a href="../Types/index.html#type-type_expr">Types.type_expr</a>;</span></code></li><li id="type-binding_op.bop_exp" class="def record field anchored"><a href="#type-binding_op.bop_exp" class="anchor"></a><code><span>bop_exp : <a href="#type-expression">expression</a>;</span></code></li><li id="type-binding_op.bop_loc" class="def record field anchored"><a href="#type-binding_op.bop_loc" class="anchor"></a><code><span>bop_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_expr"><a href="#type-class_expr" class="anchor"></a><code><span><span class="keyword">and</span> class_expr</span><span> = </span><span>{</span></code><ol><li id="type-class_expr.cl_desc" class="def record field anchored"><a href="#type-class_expr.cl_desc" class="anchor"></a><code><span>cl_desc : <a href="#type-class_expr_desc">class_expr_desc</a>;</span></code></li><li id="type-class_expr.cl_loc" class="def record field anchored"><a href="#type-class_expr.cl_loc" class="anchor"></a><code><span>cl_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-class_expr.cl_type" class="def record field anchored"><a href="#type-class_expr.cl_type" class="anchor"></a><code><span>cl_type : <a href="../Types/index.html#type-class_type">Types.class_type</a>;</span></code></li><li id="type-class_expr.cl_env" class="def record field anchored"><a href="#type-class_expr.cl_env" class="anchor"></a><code><span>cl_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li><li id="type-class_expr.cl_attributes" class="def record field anchored"><a href="#type-class_expr.cl_attributes" class="anchor"></a><code><span>cl_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_expr_desc"><a href="#type-class_expr_desc" class="anchor"></a><code><span><span class="keyword">and</span> class_expr_desc</span><span> = </span></code><ol><li id="type-class_expr_desc.Tcl_ident" class="def variant constructor anchored"><a href="#type-class_expr_desc.Tcl_ident" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcl_ident</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-class_expr_desc.Tcl_structure" class="def variant constructor anchored"><a href="#type-class_expr_desc.Tcl_structure" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcl_structure</span> <span class="keyword">of</span> <a href="#type-class_structure">class_structure</a></span></code></li><li id="type-class_expr_desc.Tcl_fun" class="def variant constructor anchored"><a href="#type-class_expr_desc.Tcl_fun" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcl_fun</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-arg_label">Asttypes.arg_label</a>
|
||
* <a href="#type-pattern">pattern</a>
|
||
* <span><span>(<a href="../Ident/index.html#type-t">Ident.t</a> * <a href="#type-expression">expression</a>)</span> list</span>
|
||
* <a href="#type-class_expr">class_expr</a>
|
||
* <a href="#type-partial">partial</a></span></code></li><li id="type-class_expr_desc.Tcl_apply" class="def variant constructor anchored"><a href="#type-class_expr_desc.Tcl_apply" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcl_apply</span> <span class="keyword">of</span> <a href="#type-class_expr">class_expr</a> * <span><span>(<a href="../Asttypes/index.html#type-arg_label">Asttypes.arg_label</a> * <span><a href="#type-expression">expression</a> option</span>)</span> list</span></span></code></li><li id="type-class_expr_desc.Tcl_let" class="def variant constructor anchored"><a href="#type-class_expr_desc.Tcl_let" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcl_let</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-rec_flag">Asttypes.rec_flag</a>
|
||
* <span><a href="#type-value_binding">value_binding</a> list</span>
|
||
* <span><span>(<a href="../Ident/index.html#type-t">Ident.t</a> * <a href="#type-expression">expression</a>)</span> list</span>
|
||
* <a href="#type-class_expr">class_expr</a></span></code></li><li id="type-class_expr_desc.Tcl_constraint" class="def variant constructor anchored"><a href="#type-class_expr_desc.Tcl_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcl_constraint</span> <span class="keyword">of</span> <a href="#type-class_expr">class_expr</a>
|
||
* <span><a href="#type-class_type">class_type</a> option</span>
|
||
* <span>string list</span>
|
||
* <span>string list</span>
|
||
* <a href="../Types/MethSet/index.html#type-t">Types.MethSet.t</a></span></code></li><li id="type-class_expr_desc.Tcl_open" class="def variant constructor anchored"><a href="#type-class_expr_desc.Tcl_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcl_open</span> <span class="keyword">of</span> <a href="#type-open_description">open_description</a> * <a href="#type-class_expr">class_expr</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_structure"><a href="#type-class_structure" class="anchor"></a><code><span><span class="keyword">and</span> class_structure</span><span> = </span><span>{</span></code><ol><li id="type-class_structure.cstr_self" class="def record field anchored"><a href="#type-class_structure.cstr_self" class="anchor"></a><code><span>cstr_self : <a href="#type-pattern">pattern</a>;</span></code></li><li id="type-class_structure.cstr_fields" class="def record field anchored"><a href="#type-class_structure.cstr_fields" class="anchor"></a><code><span>cstr_fields : <span><a href="#type-class_field">class_field</a> list</span>;</span></code></li><li id="type-class_structure.cstr_type" class="def record field anchored"><a href="#type-class_structure.cstr_type" class="anchor"></a><code><span>cstr_type : <a href="../Types/index.html#type-class_signature">Types.class_signature</a>;</span></code></li><li id="type-class_structure.cstr_meths" class="def record field anchored"><a href="#type-class_structure.cstr_meths" class="anchor"></a><code><span>cstr_meths : <span><a href="../Ident/index.html#type-t">Ident.t</a> <a href="../Types/Meths/index.html#type-t">Types.Meths.t</a></span>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_field"><a href="#type-class_field" class="anchor"></a><code><span><span class="keyword">and</span> class_field</span><span> = </span><span>{</span></code><ol><li id="type-class_field.cf_desc" class="def record field anchored"><a href="#type-class_field.cf_desc" class="anchor"></a><code><span>cf_desc : <a href="#type-class_field_desc">class_field_desc</a>;</span></code></li><li id="type-class_field.cf_loc" class="def record field anchored"><a href="#type-class_field.cf_loc" class="anchor"></a><code><span>cf_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-class_field.cf_attributes" class="def record field anchored"><a href="#type-class_field.cf_attributes" class="anchor"></a><code><span>cf_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_field_kind"><a href="#type-class_field_kind" class="anchor"></a><code><span><span class="keyword">and</span> class_field_kind</span><span> = </span></code><ol><li id="type-class_field_kind.Tcfk_virtual" class="def variant constructor anchored"><a href="#type-class_field_kind.Tcfk_virtual" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcfk_virtual</span> <span class="keyword">of</span> <a href="#type-core_type">core_type</a></span></code></li><li id="type-class_field_kind.Tcfk_concrete" class="def variant constructor anchored"><a href="#type-class_field_kind.Tcfk_concrete" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcfk_concrete</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-override_flag">Asttypes.override_flag</a> * <a href="#type-expression">expression</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_field_desc"><a href="#type-class_field_desc" class="anchor"></a><code><span><span class="keyword">and</span> class_field_desc</span><span> = </span></code><ol><li id="type-class_field_desc.Tcf_inherit" class="def variant constructor anchored"><a href="#type-class_field_desc.Tcf_inherit" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcf_inherit</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-override_flag">Asttypes.override_flag</a>
|
||
* <a href="#type-class_expr">class_expr</a>
|
||
* <span>string option</span>
|
||
* <span><span>(string * <a href="../Ident/index.html#type-t">Ident.t</a>)</span> list</span>
|
||
* <span><span>(string * <a href="../Ident/index.html#type-t">Ident.t</a>)</span> list</span></span></code></li><li id="type-class_field_desc.Tcf_val" class="def variant constructor anchored"><a href="#type-class_field_desc.Tcf_val" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcf_val</span> <span class="keyword">of</span> <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>
|
||
* <a href="../Asttypes/index.html#type-mutable_flag">Asttypes.mutable_flag</a>
|
||
* <a href="../Ident/index.html#type-t">Ident.t</a>
|
||
* <a href="#type-class_field_kind">class_field_kind</a>
|
||
* bool</span></code></li><li id="type-class_field_desc.Tcf_method" class="def variant constructor anchored"><a href="#type-class_field_desc.Tcf_method" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcf_method</span> <span class="keyword">of</span> <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="../Asttypes/index.html#type-private_flag">Asttypes.private_flag</a> * <a href="#type-class_field_kind">class_field_kind</a></span></code></li><li id="type-class_field_desc.Tcf_constraint" class="def variant constructor anchored"><a href="#type-class_field_desc.Tcf_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcf_constraint</span> <span class="keyword">of</span> <a href="#type-core_type">core_type</a> * <a href="#type-core_type">core_type</a></span></code></li><li id="type-class_field_desc.Tcf_initializer" class="def variant constructor anchored"><a href="#type-class_field_desc.Tcf_initializer" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcf_initializer</span> <span class="keyword">of</span> <a href="#type-expression">expression</a></span></code></li><li id="type-class_field_desc.Tcf_attribute" class="def variant constructor anchored"><a href="#type-class_field_desc.Tcf_attribute" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcf_attribute</span> <span class="keyword">of</span> <a href="#type-attribute">attribute</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-module_expr"><a href="#type-module_expr" class="anchor"></a><code><span><span class="keyword">and</span> module_expr</span><span> = </span><span>{</span></code><ol><li id="type-module_expr.mod_desc" class="def record field anchored"><a href="#type-module_expr.mod_desc" class="anchor"></a><code><span>mod_desc : <a href="#type-module_expr_desc">module_expr_desc</a>;</span></code></li><li id="type-module_expr.mod_loc" class="def record field anchored"><a href="#type-module_expr.mod_loc" class="anchor"></a><code><span>mod_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-module_expr.mod_type" class="def record field anchored"><a href="#type-module_expr.mod_type" class="anchor"></a><code><span>mod_type : <a href="../Types/index.html#type-module_type">Types.module_type</a>;</span></code></li><li id="type-module_expr.mod_env" class="def record field anchored"><a href="#type-module_expr.mod_env" class="anchor"></a><code><span>mod_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li><li id="type-module_expr.mod_attributes" class="def record field anchored"><a href="#type-module_expr.mod_attributes" class="anchor"></a><code><span>mod_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-module_type_constraint"><a href="#type-module_type_constraint" class="anchor"></a><code><span><span class="keyword">and</span> module_type_constraint</span><span> = </span></code><ol><li id="type-module_type_constraint.Tmodtype_implicit" class="def variant constructor anchored"><a href="#type-module_type_constraint.Tmodtype_implicit" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmodtype_implicit</span></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>The module type constraint has been synthesized during typechecking.</p><span class="comment-delim">*)</span></div></li><li id="type-module_type_constraint.Tmodtype_explicit" class="def variant constructor anchored"><a href="#type-module_type_constraint.Tmodtype_explicit" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmodtype_explicit</span> <span class="keyword">of</span> <a href="#type-module_type">module_type</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>The module type was in the source file.</p><span class="comment-delim">*)</span></div></li></ol></div><div class="spec-doc"><p>Annotations for <code>Tmod_constraint</code>.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-functor_parameter"><a href="#type-functor_parameter" class="anchor"></a><code><span><span class="keyword">and</span> functor_parameter</span><span> = </span></code><ol><li id="type-functor_parameter.Unit" class="def variant constructor anchored"><a href="#type-functor_parameter.Unit" class="anchor"></a><code><span>| </span><span><span class="constructor">Unit</span></span></code></li><li id="type-functor_parameter.Named" class="def variant constructor anchored"><a href="#type-functor_parameter.Named" class="anchor"></a><code><span>| </span><span><span class="constructor">Named</span> <span class="keyword">of</span> <span><a href="../Ident/index.html#type-t">Ident.t</a> option</span> * <span><span>string option</span> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-module_type">module_type</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-module_expr_desc"><a href="#type-module_expr_desc" class="anchor"></a><code><span><span class="keyword">and</span> module_expr_desc</span><span> = </span></code><ol><li id="type-module_expr_desc.Tmod_ident" class="def variant constructor anchored"><a href="#type-module_expr_desc.Tmod_ident" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmod_ident</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></li><li id="type-module_expr_desc.Tmod_structure" class="def variant constructor anchored"><a href="#type-module_expr_desc.Tmod_structure" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmod_structure</span> <span class="keyword">of</span> <a href="#type-structure">structure</a></span></code></li><li id="type-module_expr_desc.Tmod_functor" class="def variant constructor anchored"><a href="#type-module_expr_desc.Tmod_functor" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmod_functor</span> <span class="keyword">of</span> <a href="#type-functor_parameter">functor_parameter</a> * <a href="#type-module_expr">module_expr</a></span></code></li><li id="type-module_expr_desc.Tmod_apply" class="def variant constructor anchored"><a href="#type-module_expr_desc.Tmod_apply" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmod_apply</span> <span class="keyword">of</span> <a href="#type-module_expr">module_expr</a> * <a href="#type-module_expr">module_expr</a> * <a href="#type-module_coercion">module_coercion</a></span></code></li><li id="type-module_expr_desc.Tmod_constraint" class="def variant constructor anchored"><a href="#type-module_expr_desc.Tmod_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmod_constraint</span> <span class="keyword">of</span> <a href="#type-module_expr">module_expr</a>
|
||
* <a href="../Types/index.html#type-module_type">Types.module_type</a>
|
||
* <a href="#type-module_type_constraint">module_type_constraint</a>
|
||
* <a href="#type-module_coercion">module_coercion</a></span></code><div class="def-doc"><span class="comment-delim">(*</span><p>ME (constraint = Tmodtype_implicit) (ME : MT) (constraint = Tmodtype_explicit MT)</p><span class="comment-delim">*)</span></div></li><li id="type-module_expr_desc.Tmod_unpack" class="def variant constructor anchored"><a href="#type-module_expr_desc.Tmod_unpack" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmod_unpack</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <a href="../Types/index.html#type-module_type">Types.module_type</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-structure"><a href="#type-structure" class="anchor"></a><code><span><span class="keyword">and</span> structure</span><span> = </span><span>{</span></code><ol><li id="type-structure.str_items" class="def record field anchored"><a href="#type-structure.str_items" class="anchor"></a><code><span>str_items : <span><a href="#type-structure_item">structure_item</a> list</span>;</span></code></li><li id="type-structure.str_type" class="def record field anchored"><a href="#type-structure.str_type" class="anchor"></a><code><span>str_type : <a href="../Types/index.html#type-signature">Types.signature</a>;</span></code></li><li id="type-structure.str_final_env" class="def record field anchored"><a href="#type-structure.str_final_env" class="anchor"></a><code><span>str_final_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-structure_item"><a href="#type-structure_item" class="anchor"></a><code><span><span class="keyword">and</span> structure_item</span><span> = </span><span>{</span></code><ol><li id="type-structure_item.str_desc" class="def record field anchored"><a href="#type-structure_item.str_desc" class="anchor"></a><code><span>str_desc : <a href="#type-structure_item_desc">structure_item_desc</a>;</span></code></li><li id="type-structure_item.str_loc" class="def record field anchored"><a href="#type-structure_item.str_loc" class="anchor"></a><code><span>str_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-structure_item.str_env" class="def record field anchored"><a href="#type-structure_item.str_env" class="anchor"></a><code><span>str_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-structure_item_desc"><a href="#type-structure_item_desc" class="anchor"></a><code><span><span class="keyword">and</span> structure_item_desc</span><span> = </span></code><ol><li id="type-structure_item_desc.Tstr_eval" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_eval" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_eval</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <a href="#type-attributes">attributes</a></span></code></li><li id="type-structure_item_desc.Tstr_value" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_value" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_value</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-rec_flag">Asttypes.rec_flag</a> * <span><a href="#type-value_binding">value_binding</a> list</span></span></code></li><li id="type-structure_item_desc.Tstr_primitive" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_primitive" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_primitive</span> <span class="keyword">of</span> <a href="#type-value_description">value_description</a></span></code></li><li id="type-structure_item_desc.Tstr_type" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_type</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-rec_flag">Asttypes.rec_flag</a> * <span><a href="#type-type_declaration">type_declaration</a> list</span></span></code></li><li id="type-structure_item_desc.Tstr_typext" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_typext" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_typext</span> <span class="keyword">of</span> <a href="#type-type_extension">type_extension</a></span></code></li><li id="type-structure_item_desc.Tstr_exception" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_exception" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_exception</span> <span class="keyword">of</span> <a href="#type-type_exception">type_exception</a></span></code></li><li id="type-structure_item_desc.Tstr_module" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_module" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_module</span> <span class="keyword">of</span> <a href="#type-module_binding">module_binding</a></span></code></li><li id="type-structure_item_desc.Tstr_recmodule" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_recmodule" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_recmodule</span> <span class="keyword">of</span> <span><a href="#type-module_binding">module_binding</a> list</span></span></code></li><li id="type-structure_item_desc.Tstr_modtype" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_modtype" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_modtype</span> <span class="keyword">of</span> <a href="#type-module_type_declaration">module_type_declaration</a></span></code></li><li id="type-structure_item_desc.Tstr_open" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_open</span> <span class="keyword">of</span> <a href="#type-open_declaration">open_declaration</a></span></code></li><li id="type-structure_item_desc.Tstr_class" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_class" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_class</span> <span class="keyword">of</span> <span><span>(<a href="#type-class_declaration">class_declaration</a> * <span>string list</span>)</span> list</span></span></code></li><li id="type-structure_item_desc.Tstr_class_type" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_class_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_class_type</span> <span class="keyword">of</span> <span><span>(<a href="../Ident/index.html#type-t">Ident.t</a> * <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-class_type_declaration">class_type_declaration</a>)</span>
|
||
list</span></span></code></li><li id="type-structure_item_desc.Tstr_include" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_include" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_include</span> <span class="keyword">of</span> <a href="#type-include_declaration">include_declaration</a></span></code></li><li id="type-structure_item_desc.Tstr_attribute" class="def variant constructor anchored"><a href="#type-structure_item_desc.Tstr_attribute" class="anchor"></a><code><span>| </span><span><span class="constructor">Tstr_attribute</span> <span class="keyword">of</span> <a href="#type-attribute">attribute</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-module_binding"><a href="#type-module_binding" class="anchor"></a><code><span><span class="keyword">and</span> module_binding</span><span> = </span><span>{</span></code><ol><li id="type-module_binding.mb_id" class="def record field anchored"><a href="#type-module_binding.mb_id" class="anchor"></a><code><span>mb_id : <span><a href="../Ident/index.html#type-t">Ident.t</a> option</span>;</span></code></li><li id="type-module_binding.mb_name" class="def record field anchored"><a href="#type-module_binding.mb_name" class="anchor"></a><code><span>mb_name : <span><span>string option</span> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-module_binding.mb_presence" class="def record field anchored"><a href="#type-module_binding.mb_presence" class="anchor"></a><code><span>mb_presence : <a href="../Types/index.html#type-module_presence">Types.module_presence</a>;</span></code></li><li id="type-module_binding.mb_expr" class="def record field anchored"><a href="#type-module_binding.mb_expr" class="anchor"></a><code><span>mb_expr : <a href="#type-module_expr">module_expr</a>;</span></code></li><li id="type-module_binding.mb_attributes" class="def record field anchored"><a href="#type-module_binding.mb_attributes" class="anchor"></a><code><span>mb_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-module_binding.mb_loc" class="def record field anchored"><a href="#type-module_binding.mb_loc" class="anchor"></a><code><span>mb_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-value_binding"><a href="#type-value_binding" class="anchor"></a><code><span><span class="keyword">and</span> value_binding</span><span> = </span><span>{</span></code><ol><li id="type-value_binding.vb_pat" class="def record field anchored"><a href="#type-value_binding.vb_pat" class="anchor"></a><code><span>vb_pat : <a href="#type-pattern">pattern</a>;</span></code></li><li id="type-value_binding.vb_expr" class="def record field anchored"><a href="#type-value_binding.vb_expr" class="anchor"></a><code><span>vb_expr : <a href="#type-expression">expression</a>;</span></code></li><li id="type-value_binding.vb_attributes" class="def record field anchored"><a href="#type-value_binding.vb_attributes" class="anchor"></a><code><span>vb_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-value_binding.vb_loc" class="def record field anchored"><a href="#type-value_binding.vb_loc" class="anchor"></a><code><span>vb_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-module_coercion"><a href="#type-module_coercion" class="anchor"></a><code><span><span class="keyword">and</span> module_coercion</span><span> = </span></code><ol><li id="type-module_coercion.Tcoerce_none" class="def variant constructor anchored"><a href="#type-module_coercion.Tcoerce_none" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcoerce_none</span></span></code></li><li id="type-module_coercion.Tcoerce_structure" class="def variant constructor anchored"><a href="#type-module_coercion.Tcoerce_structure" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcoerce_structure</span> <span class="keyword">of</span> <span><span>(int * <a href="#type-module_coercion">module_coercion</a>)</span> list</span>
|
||
* <span><span>(<a href="../Ident/index.html#type-t">Ident.t</a> * int * <a href="#type-module_coercion">module_coercion</a>)</span> list</span></span></code></li><li id="type-module_coercion.Tcoerce_functor" class="def variant constructor anchored"><a href="#type-module_coercion.Tcoerce_functor" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcoerce_functor</span> <span class="keyword">of</span> <a href="#type-module_coercion">module_coercion</a> * <a href="#type-module_coercion">module_coercion</a></span></code></li><li id="type-module_coercion.Tcoerce_primitive" class="def variant constructor anchored"><a href="#type-module_coercion.Tcoerce_primitive" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcoerce_primitive</span> <span class="keyword">of</span> <a href="#type-primitive_coercion">primitive_coercion</a></span></code></li><li id="type-module_coercion.Tcoerce_alias" class="def variant constructor anchored"><a href="#type-module_coercion.Tcoerce_alias" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcoerce_alias</span> <span class="keyword">of</span> <a href="../Env/index.html#type-t">Env.t</a> * <a href="../Path/index.html#type-t">Path.t</a> * <a href="#type-module_coercion">module_coercion</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-module_type"><a href="#type-module_type" class="anchor"></a><code><span><span class="keyword">and</span> module_type</span><span> = </span><span>{</span></code><ol><li id="type-module_type.mty_desc" class="def record field anchored"><a href="#type-module_type.mty_desc" class="anchor"></a><code><span>mty_desc : <a href="#type-module_type_desc">module_type_desc</a>;</span></code></li><li id="type-module_type.mty_type" class="def record field anchored"><a href="#type-module_type.mty_type" class="anchor"></a><code><span>mty_type : <a href="../Types/index.html#type-module_type">Types.module_type</a>;</span></code></li><li id="type-module_type.mty_env" class="def record field anchored"><a href="#type-module_type.mty_env" class="anchor"></a><code><span>mty_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li><li id="type-module_type.mty_loc" class="def record field anchored"><a href="#type-module_type.mty_loc" class="anchor"></a><code><span>mty_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-module_type.mty_attributes" class="def record field anchored"><a href="#type-module_type.mty_attributes" class="anchor"></a><code><span>mty_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-module_type_desc"><a href="#type-module_type_desc" class="anchor"></a><code><span><span class="keyword">and</span> module_type_desc</span><span> = </span></code><ol><li id="type-module_type_desc.Tmty_ident" class="def variant constructor anchored"><a href="#type-module_type_desc.Tmty_ident" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmty_ident</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></li><li id="type-module_type_desc.Tmty_signature" class="def variant constructor anchored"><a href="#type-module_type_desc.Tmty_signature" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmty_signature</span> <span class="keyword">of</span> <a href="#type-signature">signature</a></span></code></li><li id="type-module_type_desc.Tmty_functor" class="def variant constructor anchored"><a href="#type-module_type_desc.Tmty_functor" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmty_functor</span> <span class="keyword">of</span> <a href="#type-functor_parameter">functor_parameter</a> * <a href="#type-module_type">module_type</a></span></code></li><li id="type-module_type_desc.Tmty_with" class="def variant constructor anchored"><a href="#type-module_type_desc.Tmty_with" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmty_with</span> <span class="keyword">of</span> <a href="#type-module_type">module_type</a>
|
||
* <span><span>(<a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-with_constraint">with_constraint</a>)</span> list</span></span></code></li><li id="type-module_type_desc.Tmty_typeof" class="def variant constructor anchored"><a href="#type-module_type_desc.Tmty_typeof" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmty_typeof</span> <span class="keyword">of</span> <a href="#type-module_expr">module_expr</a></span></code></li><li id="type-module_type_desc.Tmty_alias" class="def variant constructor anchored"><a href="#type-module_type_desc.Tmty_alias" class="anchor"></a><code><span>| </span><span><span class="constructor">Tmty_alias</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-primitive_coercion"><a href="#type-primitive_coercion" class="anchor"></a><code><span><span class="keyword">and</span> primitive_coercion</span><span> = </span><span>{</span></code><ol><li id="type-primitive_coercion.pc_desc" class="def record field anchored"><a href="#type-primitive_coercion.pc_desc" class="anchor"></a><code><span>pc_desc : <a href="../Primitive/index.html#type-description">Primitive.description</a>;</span></code></li><li id="type-primitive_coercion.pc_type" class="def record field anchored"><a href="#type-primitive_coercion.pc_type" class="anchor"></a><code><span>pc_type : <a href="../Types/index.html#type-type_expr">Types.type_expr</a>;</span></code></li><li id="type-primitive_coercion.pc_env" class="def record field anchored"><a href="#type-primitive_coercion.pc_env" class="anchor"></a><code><span>pc_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li><li id="type-primitive_coercion.pc_loc" class="def record field anchored"><a href="#type-primitive_coercion.pc_loc" class="anchor"></a><code><span>pc_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-signature"><a href="#type-signature" class="anchor"></a><code><span><span class="keyword">and</span> signature</span><span> = </span><span>{</span></code><ol><li id="type-signature.sig_items" class="def record field anchored"><a href="#type-signature.sig_items" class="anchor"></a><code><span>sig_items : <span><a href="#type-signature_item">signature_item</a> list</span>;</span></code></li><li id="type-signature.sig_type" class="def record field anchored"><a href="#type-signature.sig_type" class="anchor"></a><code><span>sig_type : <a href="../Types/index.html#type-signature">Types.signature</a>;</span></code></li><li id="type-signature.sig_final_env" class="def record field anchored"><a href="#type-signature.sig_final_env" class="anchor"></a><code><span>sig_final_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-signature_item"><a href="#type-signature_item" class="anchor"></a><code><span><span class="keyword">and</span> signature_item</span><span> = </span><span>{</span></code><ol><li id="type-signature_item.sig_desc" class="def record field anchored"><a href="#type-signature_item.sig_desc" class="anchor"></a><code><span>sig_desc : <a href="#type-signature_item_desc">signature_item_desc</a>;</span></code></li><li id="type-signature_item.sig_env" class="def record field anchored"><a href="#type-signature_item.sig_env" class="anchor"></a><code><span>sig_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li><li id="type-signature_item.sig_loc" class="def record field anchored"><a href="#type-signature_item.sig_loc" class="anchor"></a><code><span>sig_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-signature_item_desc"><a href="#type-signature_item_desc" class="anchor"></a><code><span><span class="keyword">and</span> signature_item_desc</span><span> = </span></code><ol><li id="type-signature_item_desc.Tsig_value" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_value" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_value</span> <span class="keyword">of</span> <a href="#type-value_description">value_description</a></span></code></li><li id="type-signature_item_desc.Tsig_type" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_type</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-rec_flag">Asttypes.rec_flag</a> * <span><a href="#type-type_declaration">type_declaration</a> list</span></span></code></li><li id="type-signature_item_desc.Tsig_typesubst" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_typesubst" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_typesubst</span> <span class="keyword">of</span> <span><a href="#type-type_declaration">type_declaration</a> list</span></span></code></li><li id="type-signature_item_desc.Tsig_typext" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_typext" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_typext</span> <span class="keyword">of</span> <a href="#type-type_extension">type_extension</a></span></code></li><li id="type-signature_item_desc.Tsig_exception" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_exception" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_exception</span> <span class="keyword">of</span> <a href="#type-type_exception">type_exception</a></span></code></li><li id="type-signature_item_desc.Tsig_module" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_module" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_module</span> <span class="keyword">of</span> <a href="#type-module_declaration">module_declaration</a></span></code></li><li id="type-signature_item_desc.Tsig_modsubst" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_modsubst" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_modsubst</span> <span class="keyword">of</span> <a href="#type-module_substitution">module_substitution</a></span></code></li><li id="type-signature_item_desc.Tsig_recmodule" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_recmodule" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_recmodule</span> <span class="keyword">of</span> <span><a href="#type-module_declaration">module_declaration</a> list</span></span></code></li><li id="type-signature_item_desc.Tsig_modtype" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_modtype" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_modtype</span> <span class="keyword">of</span> <a href="#type-module_type_declaration">module_type_declaration</a></span></code></li><li id="type-signature_item_desc.Tsig_modtypesubst" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_modtypesubst" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_modtypesubst</span> <span class="keyword">of</span> <a href="#type-module_type_declaration">module_type_declaration</a></span></code></li><li id="type-signature_item_desc.Tsig_open" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_open</span> <span class="keyword">of</span> <a href="#type-open_description">open_description</a></span></code></li><li id="type-signature_item_desc.Tsig_include" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_include" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_include</span> <span class="keyword">of</span> <a href="#type-include_description">include_description</a></span></code></li><li id="type-signature_item_desc.Tsig_class" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_class" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_class</span> <span class="keyword">of</span> <span><a href="#type-class_description">class_description</a> list</span></span></code></li><li id="type-signature_item_desc.Tsig_class_type" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_class_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_class_type</span> <span class="keyword">of</span> <span><a href="#type-class_type_declaration">class_type_declaration</a> list</span></span></code></li><li id="type-signature_item_desc.Tsig_attribute" class="def variant constructor anchored"><a href="#type-signature_item_desc.Tsig_attribute" class="anchor"></a><code><span>| </span><span><span class="constructor">Tsig_attribute</span> <span class="keyword">of</span> <a href="#type-attribute">attribute</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-module_declaration"><a href="#type-module_declaration" class="anchor"></a><code><span><span class="keyword">and</span> module_declaration</span><span> = </span><span>{</span></code><ol><li id="type-module_declaration.md_id" class="def record field anchored"><a href="#type-module_declaration.md_id" class="anchor"></a><code><span>md_id : <span><a href="../Ident/index.html#type-t">Ident.t</a> option</span>;</span></code></li><li id="type-module_declaration.md_name" class="def record field anchored"><a href="#type-module_declaration.md_name" class="anchor"></a><code><span>md_name : <span><span>string option</span> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-module_declaration.md_presence" class="def record field anchored"><a href="#type-module_declaration.md_presence" class="anchor"></a><code><span>md_presence : <a href="../Types/index.html#type-module_presence">Types.module_presence</a>;</span></code></li><li id="type-module_declaration.md_type" class="def record field anchored"><a href="#type-module_declaration.md_type" class="anchor"></a><code><span>md_type : <a href="#type-module_type">module_type</a>;</span></code></li><li id="type-module_declaration.md_attributes" class="def record field anchored"><a href="#type-module_declaration.md_attributes" class="anchor"></a><code><span>md_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-module_declaration.md_loc" class="def record field anchored"><a href="#type-module_declaration.md_loc" class="anchor"></a><code><span>md_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-module_substitution"><a href="#type-module_substitution" class="anchor"></a><code><span><span class="keyword">and</span> module_substitution</span><span> = </span><span>{</span></code><ol><li id="type-module_substitution.ms_id" class="def record field anchored"><a href="#type-module_substitution.ms_id" class="anchor"></a><code><span>ms_id : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-module_substitution.ms_name" class="def record field anchored"><a href="#type-module_substitution.ms_name" class="anchor"></a><code><span>ms_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-module_substitution.ms_manifest" class="def record field anchored"><a href="#type-module_substitution.ms_manifest" class="anchor"></a><code><span>ms_manifest : <a href="../Path/index.html#type-t">Path.t</a>;</span></code></li><li id="type-module_substitution.ms_txt" class="def record field anchored"><a href="#type-module_substitution.ms_txt" class="anchor"></a><code><span>ms_txt : <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-module_substitution.ms_attributes" class="def record field anchored"><a href="#type-module_substitution.ms_attributes" class="anchor"></a><code><span>ms_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-module_substitution.ms_loc" class="def record field anchored"><a href="#type-module_substitution.ms_loc" class="anchor"></a><code><span>ms_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-module_type_declaration"><a href="#type-module_type_declaration" class="anchor"></a><code><span><span class="keyword">and</span> module_type_declaration</span><span> = </span><span>{</span></code><ol><li id="type-module_type_declaration.mtd_id" class="def record field anchored"><a href="#type-module_type_declaration.mtd_id" class="anchor"></a><code><span>mtd_id : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-module_type_declaration.mtd_name" class="def record field anchored"><a href="#type-module_type_declaration.mtd_name" class="anchor"></a><code><span>mtd_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-module_type_declaration.mtd_type" class="def record field anchored"><a href="#type-module_type_declaration.mtd_type" class="anchor"></a><code><span>mtd_type : <span><a href="#type-module_type">module_type</a> option</span>;</span></code></li><li id="type-module_type_declaration.mtd_attributes" class="def record field anchored"><a href="#type-module_type_declaration.mtd_attributes" class="anchor"></a><code><span>mtd_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-module_type_declaration.mtd_loc" class="def record field anchored"><a href="#type-module_type_declaration.mtd_loc" class="anchor"></a><code><span>mtd_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-open_infos"><a href="#type-open_infos" class="anchor"></a><code><span><span class="keyword">and</span> <span>'a open_infos</span></span><span> = </span><span>{</span></code><ol><li id="type-open_infos.open_expr" class="def record field anchored"><a href="#type-open_infos.open_expr" class="anchor"></a><code><span>open_expr : <span class="type-var">'a</span>;</span></code></li><li id="type-open_infos.open_bound_items" class="def record field anchored"><a href="#type-open_infos.open_bound_items" class="anchor"></a><code><span>open_bound_items : <a href="../Types/index.html#type-signature">Types.signature</a>;</span></code></li><li id="type-open_infos.open_override" class="def record field anchored"><a href="#type-open_infos.open_override" class="anchor"></a><code><span>open_override : <a href="../Asttypes/index.html#type-override_flag">Asttypes.override_flag</a>;</span></code></li><li id="type-open_infos.open_env" class="def record field anchored"><a href="#type-open_infos.open_env" class="anchor"></a><code><span>open_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li><li id="type-open_infos.open_loc" class="def record field anchored"><a href="#type-open_infos.open_loc" class="anchor"></a><code><span>open_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-open_infos.open_attributes" class="def record field anchored"><a href="#type-open_infos.open_attributes" class="anchor"></a><code><span>open_attributes : <span><a href="#type-attribute">attribute</a> list</span>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-open_description"><a href="#type-open_description" class="anchor"></a><code><span><span class="keyword">and</span> open_description</span><span> = <span><span>(<a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>)</span> <a href="#type-open_infos">open_infos</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-open_declaration"><a href="#type-open_declaration" class="anchor"></a><code><span><span class="keyword">and</span> open_declaration</span><span> = <span><a href="#type-module_expr">module_expr</a> <a href="#type-open_infos">open_infos</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-include_infos"><a href="#type-include_infos" class="anchor"></a><code><span><span class="keyword">and</span> <span>'a include_infos</span></span><span> = </span><span>{</span></code><ol><li id="type-include_infos.incl_mod" class="def record field anchored"><a href="#type-include_infos.incl_mod" class="anchor"></a><code><span>incl_mod : <span class="type-var">'a</span>;</span></code></li><li id="type-include_infos.incl_type" class="def record field anchored"><a href="#type-include_infos.incl_type" class="anchor"></a><code><span>incl_type : <a href="../Types/index.html#type-signature">Types.signature</a>;</span></code></li><li id="type-include_infos.incl_loc" class="def record field anchored"><a href="#type-include_infos.incl_loc" class="anchor"></a><code><span>incl_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-include_infos.incl_attributes" class="def record field anchored"><a href="#type-include_infos.incl_attributes" class="anchor"></a><code><span>incl_attributes : <span><a href="#type-attribute">attribute</a> list</span>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-include_description"><a href="#type-include_description" class="anchor"></a><code><span><span class="keyword">and</span> include_description</span><span> = <span><a href="#type-module_type">module_type</a> <a href="#type-include_infos">include_infos</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-include_declaration"><a href="#type-include_declaration" class="anchor"></a><code><span><span class="keyword">and</span> include_declaration</span><span> = <span><a href="#type-module_expr">module_expr</a> <a href="#type-include_infos">include_infos</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-with_constraint"><a href="#type-with_constraint" class="anchor"></a><code><span><span class="keyword">and</span> with_constraint</span><span> = </span></code><ol><li id="type-with_constraint.Twith_type" class="def variant constructor anchored"><a href="#type-with_constraint.Twith_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Twith_type</span> <span class="keyword">of</span> <a href="#type-type_declaration">type_declaration</a></span></code></li><li id="type-with_constraint.Twith_module" class="def variant constructor anchored"><a href="#type-with_constraint.Twith_module" class="anchor"></a><code><span>| </span><span><span class="constructor">Twith_module</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></li><li id="type-with_constraint.Twith_modtype" class="def variant constructor anchored"><a href="#type-with_constraint.Twith_modtype" class="anchor"></a><code><span>| </span><span><span class="constructor">Twith_modtype</span> <span class="keyword">of</span> <a href="#type-module_type">module_type</a></span></code></li><li id="type-with_constraint.Twith_typesubst" class="def variant constructor anchored"><a href="#type-with_constraint.Twith_typesubst" class="anchor"></a><code><span>| </span><span><span class="constructor">Twith_typesubst</span> <span class="keyword">of</span> <a href="#type-type_declaration">type_declaration</a></span></code></li><li id="type-with_constraint.Twith_modsubst" class="def variant constructor anchored"><a href="#type-with_constraint.Twith_modsubst" class="anchor"></a><code><span>| </span><span><span class="constructor">Twith_modsubst</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></li><li id="type-with_constraint.Twith_modtypesubst" class="def variant constructor anchored"><a href="#type-with_constraint.Twith_modtypesubst" class="anchor"></a><code><span>| </span><span><span class="constructor">Twith_modtypesubst</span> <span class="keyword">of</span> <a href="#type-module_type">module_type</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-core_type"><a href="#type-core_type" class="anchor"></a><code><span><span class="keyword">and</span> core_type</span><span> = </span><span>{</span></code><ol><li id="type-core_type.ctyp_desc" class="def record field anchored"><a href="#type-core_type.ctyp_desc" class="anchor"></a><code><span><span class="keyword">mutable</span> ctyp_desc : <a href="#type-core_type_desc">core_type_desc</a>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>mutable because of <code>Typeclass.declare_method</code></p><span class="comment-delim">*)</span></div></li><li id="type-core_type.ctyp_type" class="def record field anchored"><a href="#type-core_type.ctyp_type" class="anchor"></a><code><span><span class="keyword">mutable</span> ctyp_type : <a href="../Types/index.html#type-type_expr">Types.type_expr</a>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>mutable because of <code>Typeclass.declare_method</code></p><span class="comment-delim">*)</span></div></li><li id="type-core_type.ctyp_env" class="def record field anchored"><a href="#type-core_type.ctyp_env" class="anchor"></a><code><span>ctyp_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li><li id="type-core_type.ctyp_loc" class="def record field anchored"><a href="#type-core_type.ctyp_loc" class="anchor"></a><code><span>ctyp_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-core_type.ctyp_attributes" class="def record field anchored"><a href="#type-core_type.ctyp_attributes" class="anchor"></a><code><span>ctyp_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-core_type_desc"><a href="#type-core_type_desc" class="anchor"></a><code><span><span class="keyword">and</span> core_type_desc</span><span> = </span></code><ol><li id="type-core_type_desc.Ttyp_any" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_any" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_any</span></span></code></li><li id="type-core_type_desc.Ttyp_var" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_var" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_var</span> <span class="keyword">of</span> string</span></code></li><li id="type-core_type_desc.Ttyp_arrow" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_arrow" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_arrow</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-arg_label">Asttypes.arg_label</a> * <a href="#type-core_type">core_type</a> * <a href="#type-core_type">core_type</a></span></code></li><li id="type-core_type_desc.Ttyp_tuple" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_tuple" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_tuple</span> <span class="keyword">of</span> <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-core_type_desc.Ttyp_constr" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_constr" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_constr</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-core_type_desc.Ttyp_object" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_object" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_object</span> <span class="keyword">of</span> <span><a href="#type-object_field">object_field</a> list</span> * <a href="../Asttypes/index.html#type-closed_flag">Asttypes.closed_flag</a></span></code></li><li id="type-core_type_desc.Ttyp_class" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_class" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_class</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-core_type_desc.Ttyp_alias" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_alias" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_alias</span> <span class="keyword">of</span> <a href="#type-core_type">core_type</a> * string</span></code></li><li id="type-core_type_desc.Ttyp_variant" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_variant" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_variant</span> <span class="keyword">of</span> <span><a href="#type-row_field">row_field</a> list</span>
|
||
* <a href="../Asttypes/index.html#type-closed_flag">Asttypes.closed_flag</a>
|
||
* <span><span><a href="../Asttypes/index.html#type-label">Asttypes.label</a> list</span> option</span></span></code></li><li id="type-core_type_desc.Ttyp_poly" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_poly" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_poly</span> <span class="keyword">of</span> <span>string list</span> * <a href="#type-core_type">core_type</a></span></code></li><li id="type-core_type_desc.Ttyp_package" class="def variant constructor anchored"><a href="#type-core_type_desc.Ttyp_package" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttyp_package</span> <span class="keyword">of</span> <a href="#type-package_type">package_type</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-package_type"><a href="#type-package_type" class="anchor"></a><code><span><span class="keyword">and</span> package_type</span><span> = </span><span>{</span></code><ol><li id="type-package_type.pack_path" class="def record field anchored"><a href="#type-package_type.pack_path" class="anchor"></a><code><span>pack_path : <a href="../Path/index.html#type-t">Path.t</a>;</span></code></li><li id="type-package_type.pack_fields" class="def record field anchored"><a href="#type-package_type.pack_fields" class="anchor"></a><code><span>pack_fields : <span><span>(<span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-core_type">core_type</a>)</span> list</span>;</span></code></li><li id="type-package_type.pack_type" class="def record field anchored"><a href="#type-package_type.pack_type" class="anchor"></a><code><span>pack_type : <a href="../Types/index.html#type-module_type">Types.module_type</a>;</span></code></li><li id="type-package_type.pack_txt" class="def record field anchored"><a href="#type-package_type.pack_txt" class="anchor"></a><code><span>pack_txt : <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-row_field"><a href="#type-row_field" class="anchor"></a><code><span><span class="keyword">and</span> row_field</span><span> = </span><span>{</span></code><ol><li id="type-row_field.rf_desc" class="def record field anchored"><a href="#type-row_field.rf_desc" class="anchor"></a><code><span>rf_desc : <a href="#type-row_field_desc">row_field_desc</a>;</span></code></li><li id="type-row_field.rf_loc" class="def record field anchored"><a href="#type-row_field.rf_loc" class="anchor"></a><code><span>rf_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-row_field.rf_attributes" class="def record field anchored"><a href="#type-row_field.rf_attributes" class="anchor"></a><code><span>rf_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-row_field_desc"><a href="#type-row_field_desc" class="anchor"></a><code><span><span class="keyword">and</span> row_field_desc</span><span> = </span></code><ol><li id="type-row_field_desc.Ttag" class="def variant constructor anchored"><a href="#type-row_field_desc.Ttag" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttag</span> <span class="keyword">of</span> <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * bool * <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-row_field_desc.Tinherit" class="def variant constructor anchored"><a href="#type-row_field_desc.Tinherit" class="anchor"></a><code><span>| </span><span><span class="constructor">Tinherit</span> <span class="keyword">of</span> <a href="#type-core_type">core_type</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-object_field"><a href="#type-object_field" class="anchor"></a><code><span><span class="keyword">and</span> object_field</span><span> = </span><span>{</span></code><ol><li id="type-object_field.of_desc" class="def record field anchored"><a href="#type-object_field.of_desc" class="anchor"></a><code><span>of_desc : <a href="#type-object_field_desc">object_field_desc</a>;</span></code></li><li id="type-object_field.of_loc" class="def record field anchored"><a href="#type-object_field.of_loc" class="anchor"></a><code><span>of_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-object_field.of_attributes" class="def record field anchored"><a href="#type-object_field.of_attributes" class="anchor"></a><code><span>of_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-object_field_desc"><a href="#type-object_field_desc" class="anchor"></a><code><span><span class="keyword">and</span> object_field_desc</span><span> = </span></code><ol><li id="type-object_field_desc.OTtag" class="def variant constructor anchored"><a href="#type-object_field_desc.OTtag" class="anchor"></a><code><span>| </span><span><span class="constructor">OTtag</span> <span class="keyword">of</span> <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-core_type">core_type</a></span></code></li><li id="type-object_field_desc.OTinherit" class="def variant constructor anchored"><a href="#type-object_field_desc.OTinherit" class="anchor"></a><code><span>| </span><span><span class="constructor">OTinherit</span> <span class="keyword">of</span> <a href="#type-core_type">core_type</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-value_description"><a href="#type-value_description" class="anchor"></a><code><span><span class="keyword">and</span> value_description</span><span> = </span><span>{</span></code><ol><li id="type-value_description.val_id" class="def record field anchored"><a href="#type-value_description.val_id" class="anchor"></a><code><span>val_id : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-value_description.val_name" class="def record field anchored"><a href="#type-value_description.val_name" class="anchor"></a><code><span>val_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-value_description.val_desc" class="def record field anchored"><a href="#type-value_description.val_desc" class="anchor"></a><code><span>val_desc : <a href="#type-core_type">core_type</a>;</span></code></li><li id="type-value_description.val_val" class="def record field anchored"><a href="#type-value_description.val_val" class="anchor"></a><code><span>val_val : <a href="../Types/index.html#type-value_description">Types.value_description</a>;</span></code></li><li id="type-value_description.val_prim" class="def record field anchored"><a href="#type-value_description.val_prim" class="anchor"></a><code><span>val_prim : <span>string list</span>;</span></code></li><li id="type-value_description.val_loc" class="def record field anchored"><a href="#type-value_description.val_loc" class="anchor"></a><code><span>val_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-value_description.val_attributes" class="def record field anchored"><a href="#type-value_description.val_attributes" class="anchor"></a><code><span>val_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-type_declaration"><a href="#type-type_declaration" class="anchor"></a><code><span><span class="keyword">and</span> type_declaration</span><span> = </span><span>{</span></code><ol><li id="type-type_declaration.typ_id" class="def record field anchored"><a href="#type-type_declaration.typ_id" class="anchor"></a><code><span>typ_id : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-type_declaration.typ_name" class="def record field anchored"><a href="#type-type_declaration.typ_name" class="anchor"></a><code><span>typ_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-type_declaration.typ_params" class="def record field anchored"><a href="#type-type_declaration.typ_params" class="anchor"></a><code><span>typ_params : <span><span>(<a href="#type-core_type">core_type</a> * <span>(<a href="../Asttypes/index.html#type-variance">Asttypes.variance</a> * <a href="../Asttypes/index.html#type-injectivity">Asttypes.injectivity</a>)</span>)</span> list</span>;</span></code></li><li id="type-type_declaration.typ_type" class="def record field anchored"><a href="#type-type_declaration.typ_type" class="anchor"></a><code><span>typ_type : <a href="../Types/index.html#type-type_declaration">Types.type_declaration</a>;</span></code></li><li id="type-type_declaration.typ_cstrs" class="def record field anchored"><a href="#type-type_declaration.typ_cstrs" class="anchor"></a><code><span>typ_cstrs : <span><span>(<a href="#type-core_type">core_type</a> * <a href="#type-core_type">core_type</a> * <a href="../Location/index.html#type-t">Location.t</a>)</span> list</span>;</span></code></li><li id="type-type_declaration.typ_kind" class="def record field anchored"><a href="#type-type_declaration.typ_kind" class="anchor"></a><code><span>typ_kind : <a href="#type-type_kind">type_kind</a>;</span></code></li><li id="type-type_declaration.typ_private" class="def record field anchored"><a href="#type-type_declaration.typ_private" class="anchor"></a><code><span>typ_private : <a href="../Asttypes/index.html#type-private_flag">Asttypes.private_flag</a>;</span></code></li><li id="type-type_declaration.typ_manifest" class="def record field anchored"><a href="#type-type_declaration.typ_manifest" class="anchor"></a><code><span>typ_manifest : <span><a href="#type-core_type">core_type</a> option</span>;</span></code></li><li id="type-type_declaration.typ_loc" class="def record field anchored"><a href="#type-type_declaration.typ_loc" class="anchor"></a><code><span>typ_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-type_declaration.typ_attributes" class="def record field anchored"><a href="#type-type_declaration.typ_attributes" class="anchor"></a><code><span>typ_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-type_kind"><a href="#type-type_kind" class="anchor"></a><code><span><span class="keyword">and</span> type_kind</span><span> = </span></code><ol><li id="type-type_kind.Ttype_abstract" class="def variant constructor anchored"><a href="#type-type_kind.Ttype_abstract" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttype_abstract</span></span></code></li><li id="type-type_kind.Ttype_variant" class="def variant constructor anchored"><a href="#type-type_kind.Ttype_variant" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttype_variant</span> <span class="keyword">of</span> <span><a href="#type-constructor_declaration">constructor_declaration</a> list</span></span></code></li><li id="type-type_kind.Ttype_record" class="def variant constructor anchored"><a href="#type-type_kind.Ttype_record" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttype_record</span> <span class="keyword">of</span> <span><a href="#type-label_declaration">label_declaration</a> list</span></span></code></li><li id="type-type_kind.Ttype_open" class="def variant constructor anchored"><a href="#type-type_kind.Ttype_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Ttype_open</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-label_declaration"><a href="#type-label_declaration" class="anchor"></a><code><span><span class="keyword">and</span> label_declaration</span><span> = </span><span>{</span></code><ol><li id="type-label_declaration.ld_id" class="def record field anchored"><a href="#type-label_declaration.ld_id" class="anchor"></a><code><span>ld_id : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-label_declaration.ld_name" class="def record field anchored"><a href="#type-label_declaration.ld_name" class="anchor"></a><code><span>ld_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-label_declaration.ld_mutable" class="def record field anchored"><a href="#type-label_declaration.ld_mutable" class="anchor"></a><code><span>ld_mutable : <a href="../Asttypes/index.html#type-mutable_flag">Asttypes.mutable_flag</a>;</span></code></li><li id="type-label_declaration.ld_type" class="def record field anchored"><a href="#type-label_declaration.ld_type" class="anchor"></a><code><span>ld_type : <a href="#type-core_type">core_type</a>;</span></code></li><li id="type-label_declaration.ld_loc" class="def record field anchored"><a href="#type-label_declaration.ld_loc" class="anchor"></a><code><span>ld_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-label_declaration.ld_attributes" class="def record field anchored"><a href="#type-label_declaration.ld_attributes" class="anchor"></a><code><span>ld_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-constructor_declaration"><a href="#type-constructor_declaration" class="anchor"></a><code><span><span class="keyword">and</span> constructor_declaration</span><span> = </span><span>{</span></code><ol><li id="type-constructor_declaration.cd_id" class="def record field anchored"><a href="#type-constructor_declaration.cd_id" class="anchor"></a><code><span>cd_id : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-constructor_declaration.cd_name" class="def record field anchored"><a href="#type-constructor_declaration.cd_name" class="anchor"></a><code><span>cd_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-constructor_declaration.cd_vars" class="def record field anchored"><a href="#type-constructor_declaration.cd_vars" class="anchor"></a><code><span>cd_vars : <span><span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> list</span>;</span></code></li><li id="type-constructor_declaration.cd_args" class="def record field anchored"><a href="#type-constructor_declaration.cd_args" class="anchor"></a><code><span>cd_args : <a href="#type-constructor_arguments">constructor_arguments</a>;</span></code></li><li id="type-constructor_declaration.cd_res" class="def record field anchored"><a href="#type-constructor_declaration.cd_res" class="anchor"></a><code><span>cd_res : <span><a href="#type-core_type">core_type</a> option</span>;</span></code></li><li id="type-constructor_declaration.cd_loc" class="def record field anchored"><a href="#type-constructor_declaration.cd_loc" class="anchor"></a><code><span>cd_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-constructor_declaration.cd_attributes" class="def record field anchored"><a href="#type-constructor_declaration.cd_attributes" class="anchor"></a><code><span>cd_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-constructor_arguments"><a href="#type-constructor_arguments" class="anchor"></a><code><span><span class="keyword">and</span> constructor_arguments</span><span> = </span></code><ol><li id="type-constructor_arguments.Cstr_tuple" class="def variant constructor anchored"><a href="#type-constructor_arguments.Cstr_tuple" class="anchor"></a><code><span>| </span><span><span class="constructor">Cstr_tuple</span> <span class="keyword">of</span> <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-constructor_arguments.Cstr_record" class="def variant constructor anchored"><a href="#type-constructor_arguments.Cstr_record" class="anchor"></a><code><span>| </span><span><span class="constructor">Cstr_record</span> <span class="keyword">of</span> <span><a href="#type-label_declaration">label_declaration</a> list</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-type_extension"><a href="#type-type_extension" class="anchor"></a><code><span><span class="keyword">and</span> type_extension</span><span> = </span><span>{</span></code><ol><li id="type-type_extension.tyext_path" class="def record field anchored"><a href="#type-type_extension.tyext_path" class="anchor"></a><code><span>tyext_path : <a href="../Path/index.html#type-t">Path.t</a>;</span></code></li><li id="type-type_extension.tyext_txt" class="def record field anchored"><a href="#type-type_extension.tyext_txt" class="anchor"></a><code><span>tyext_txt : <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-type_extension.tyext_params" class="def record field anchored"><a href="#type-type_extension.tyext_params" class="anchor"></a><code><span>tyext_params : <span><span>(<a href="#type-core_type">core_type</a> * <span>(<a href="../Asttypes/index.html#type-variance">Asttypes.variance</a> * <a href="../Asttypes/index.html#type-injectivity">Asttypes.injectivity</a>)</span>)</span> list</span>;</span></code></li><li id="type-type_extension.tyext_constructors" class="def record field anchored"><a href="#type-type_extension.tyext_constructors" class="anchor"></a><code><span>tyext_constructors : <span><a href="#type-extension_constructor">extension_constructor</a> list</span>;</span></code></li><li id="type-type_extension.tyext_private" class="def record field anchored"><a href="#type-type_extension.tyext_private" class="anchor"></a><code><span>tyext_private : <a href="../Asttypes/index.html#type-private_flag">Asttypes.private_flag</a>;</span></code></li><li id="type-type_extension.tyext_loc" class="def record field anchored"><a href="#type-type_extension.tyext_loc" class="anchor"></a><code><span>tyext_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-type_extension.tyext_attributes" class="def record field anchored"><a href="#type-type_extension.tyext_attributes" class="anchor"></a><code><span>tyext_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-type_exception"><a href="#type-type_exception" class="anchor"></a><code><span><span class="keyword">and</span> type_exception</span><span> = </span><span>{</span></code><ol><li id="type-type_exception.tyexn_constructor" class="def record field anchored"><a href="#type-type_exception.tyexn_constructor" class="anchor"></a><code><span>tyexn_constructor : <a href="#type-extension_constructor">extension_constructor</a>;</span></code></li><li id="type-type_exception.tyexn_loc" class="def record field anchored"><a href="#type-type_exception.tyexn_loc" class="anchor"></a><code><span>tyexn_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-type_exception.tyexn_attributes" class="def record field anchored"><a href="#type-type_exception.tyexn_attributes" class="anchor"></a><code><span>tyexn_attributes : <span><a href="#type-attribute">attribute</a> list</span>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-extension_constructor"><a href="#type-extension_constructor" class="anchor"></a><code><span><span class="keyword">and</span> extension_constructor</span><span> = </span><span>{</span></code><ol><li id="type-extension_constructor.ext_id" class="def record field anchored"><a href="#type-extension_constructor.ext_id" class="anchor"></a><code><span>ext_id : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-extension_constructor.ext_name" class="def record field anchored"><a href="#type-extension_constructor.ext_name" class="anchor"></a><code><span>ext_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-extension_constructor.ext_type" class="def record field anchored"><a href="#type-extension_constructor.ext_type" class="anchor"></a><code><span>ext_type : <a href="../Types/index.html#type-extension_constructor">Types.extension_constructor</a>;</span></code></li><li id="type-extension_constructor.ext_kind" class="def record field anchored"><a href="#type-extension_constructor.ext_kind" class="anchor"></a><code><span>ext_kind : <a href="#type-extension_constructor_kind">extension_constructor_kind</a>;</span></code></li><li id="type-extension_constructor.ext_loc" class="def record field anchored"><a href="#type-extension_constructor.ext_loc" class="anchor"></a><code><span>ext_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-extension_constructor.ext_attributes" class="def record field anchored"><a href="#type-extension_constructor.ext_attributes" class="anchor"></a><code><span>ext_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-extension_constructor_kind"><a href="#type-extension_constructor_kind" class="anchor"></a><code><span><span class="keyword">and</span> extension_constructor_kind</span><span> = </span></code><ol><li id="type-extension_constructor_kind.Text_decl" class="def variant constructor anchored"><a href="#type-extension_constructor_kind.Text_decl" class="anchor"></a><code><span>| </span><span><span class="constructor">Text_decl</span> <span class="keyword">of</span> <span><span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> list</span>
|
||
* <a href="#type-constructor_arguments">constructor_arguments</a>
|
||
* <span><a href="#type-core_type">core_type</a> option</span></span></code></li><li id="type-extension_constructor_kind.Text_rebind" class="def variant constructor anchored"><a href="#type-extension_constructor_kind.Text_rebind" class="anchor"></a><code><span>| </span><span><span class="constructor">Text_rebind</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_type"><a href="#type-class_type" class="anchor"></a><code><span><span class="keyword">and</span> class_type</span><span> = </span><span>{</span></code><ol><li id="type-class_type.cltyp_desc" class="def record field anchored"><a href="#type-class_type.cltyp_desc" class="anchor"></a><code><span>cltyp_desc : <a href="#type-class_type_desc">class_type_desc</a>;</span></code></li><li id="type-class_type.cltyp_type" class="def record field anchored"><a href="#type-class_type.cltyp_type" class="anchor"></a><code><span>cltyp_type : <a href="../Types/index.html#type-class_type">Types.class_type</a>;</span></code></li><li id="type-class_type.cltyp_env" class="def record field anchored"><a href="#type-class_type.cltyp_env" class="anchor"></a><code><span>cltyp_env : <a href="../Env/index.html#type-t">Env.t</a>;</span></code></li><li id="type-class_type.cltyp_loc" class="def record field anchored"><a href="#type-class_type.cltyp_loc" class="anchor"></a><code><span>cltyp_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-class_type.cltyp_attributes" class="def record field anchored"><a href="#type-class_type.cltyp_attributes" class="anchor"></a><code><span>cltyp_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_type_desc"><a href="#type-class_type_desc" class="anchor"></a><code><span><span class="keyword">and</span> class_type_desc</span><span> = </span></code><ol><li id="type-class_type_desc.Tcty_constr" class="def variant constructor anchored"><a href="#type-class_type_desc.Tcty_constr" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcty_constr</span> <span class="keyword">of</span> <a href="../Path/index.html#type-t">Path.t</a> * <span><a href="../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-class_type_desc.Tcty_signature" class="def variant constructor anchored"><a href="#type-class_type_desc.Tcty_signature" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcty_signature</span> <span class="keyword">of</span> <a href="#type-class_signature">class_signature</a></span></code></li><li id="type-class_type_desc.Tcty_arrow" class="def variant constructor anchored"><a href="#type-class_type_desc.Tcty_arrow" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcty_arrow</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-arg_label">Asttypes.arg_label</a> * <a href="#type-core_type">core_type</a> * <a href="#type-class_type">class_type</a></span></code></li><li id="type-class_type_desc.Tcty_open" class="def variant constructor anchored"><a href="#type-class_type_desc.Tcty_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Tcty_open</span> <span class="keyword">of</span> <a href="#type-open_description">open_description</a> * <a href="#type-class_type">class_type</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_signature"><a href="#type-class_signature" class="anchor"></a><code><span><span class="keyword">and</span> class_signature</span><span> = </span><span>{</span></code><ol><li id="type-class_signature.csig_self" class="def record field anchored"><a href="#type-class_signature.csig_self" class="anchor"></a><code><span>csig_self : <a href="#type-core_type">core_type</a>;</span></code></li><li id="type-class_signature.csig_fields" class="def record field anchored"><a href="#type-class_signature.csig_fields" class="anchor"></a><code><span>csig_fields : <span><a href="#type-class_type_field">class_type_field</a> list</span>;</span></code></li><li id="type-class_signature.csig_type" class="def record field anchored"><a href="#type-class_signature.csig_type" class="anchor"></a><code><span>csig_type : <a href="../Types/index.html#type-class_signature">Types.class_signature</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_type_field"><a href="#type-class_type_field" class="anchor"></a><code><span><span class="keyword">and</span> class_type_field</span><span> = </span><span>{</span></code><ol><li id="type-class_type_field.ctf_desc" class="def record field anchored"><a href="#type-class_type_field.ctf_desc" class="anchor"></a><code><span>ctf_desc : <a href="#type-class_type_field_desc">class_type_field_desc</a>;</span></code></li><li id="type-class_type_field.ctf_loc" class="def record field anchored"><a href="#type-class_type_field.ctf_loc" class="anchor"></a><code><span>ctf_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-class_type_field.ctf_attributes" class="def record field anchored"><a href="#type-class_type_field.ctf_attributes" class="anchor"></a><code><span>ctf_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_type_field_desc"><a href="#type-class_type_field_desc" class="anchor"></a><code><span><span class="keyword">and</span> class_type_field_desc</span><span> = </span></code><ol><li id="type-class_type_field_desc.Tctf_inherit" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Tctf_inherit" class="anchor"></a><code><span>| </span><span><span class="constructor">Tctf_inherit</span> <span class="keyword">of</span> <a href="#type-class_type">class_type</a></span></code></li><li id="type-class_type_field_desc.Tctf_val" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Tctf_val" class="anchor"></a><code><span>| </span><span><span class="constructor">Tctf_val</span> <span class="keyword">of</span> string * <a href="../Asttypes/index.html#type-mutable_flag">Asttypes.mutable_flag</a> * <a href="../Asttypes/index.html#type-virtual_flag">Asttypes.virtual_flag</a> * <a href="#type-core_type">core_type</a></span></code></li><li id="type-class_type_field_desc.Tctf_method" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Tctf_method" class="anchor"></a><code><span>| </span><span><span class="constructor">Tctf_method</span> <span class="keyword">of</span> string
|
||
* <a href="../Asttypes/index.html#type-private_flag">Asttypes.private_flag</a>
|
||
* <a href="../Asttypes/index.html#type-virtual_flag">Asttypes.virtual_flag</a>
|
||
* <a href="#type-core_type">core_type</a></span></code></li><li id="type-class_type_field_desc.Tctf_constraint" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Tctf_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Tctf_constraint</span> <span class="keyword">of</span> <a href="#type-core_type">core_type</a> * <a href="#type-core_type">core_type</a></span></code></li><li id="type-class_type_field_desc.Tctf_attribute" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Tctf_attribute" class="anchor"></a><code><span>| </span><span><span class="constructor">Tctf_attribute</span> <span class="keyword">of</span> <a href="#type-attribute">attribute</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_declaration"><a href="#type-class_declaration" class="anchor"></a><code><span><span class="keyword">and</span> class_declaration</span><span> = <span><a href="#type-class_expr">class_expr</a> <a href="#type-class_infos">class_infos</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_description"><a href="#type-class_description" class="anchor"></a><code><span><span class="keyword">and</span> class_description</span><span> = <span><a href="#type-class_type">class_type</a> <a href="#type-class_infos">class_infos</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_type_declaration"><a href="#type-class_type_declaration" class="anchor"></a><code><span><span class="keyword">and</span> class_type_declaration</span><span> = <span><a href="#type-class_type">class_type</a> <a href="#type-class_infos">class_infos</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-class_infos"><a href="#type-class_infos" class="anchor"></a><code><span><span class="keyword">and</span> <span>'a class_infos</span></span><span> = </span><span>{</span></code><ol><li id="type-class_infos.ci_virt" class="def record field anchored"><a href="#type-class_infos.ci_virt" class="anchor"></a><code><span>ci_virt : <a href="../Asttypes/index.html#type-virtual_flag">Asttypes.virtual_flag</a>;</span></code></li><li id="type-class_infos.ci_params" class="def record field anchored"><a href="#type-class_infos.ci_params" class="anchor"></a><code><span>ci_params : <span><span>(<a href="#type-core_type">core_type</a> * <span>(<a href="../Asttypes/index.html#type-variance">Asttypes.variance</a> * <a href="../Asttypes/index.html#type-injectivity">Asttypes.injectivity</a>)</span>)</span> list</span>;</span></code></li><li id="type-class_infos.ci_id_name" class="def record field anchored"><a href="#type-class_infos.ci_id_name" class="anchor"></a><code><span>ci_id_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-class_infos.ci_id_class" class="def record field anchored"><a href="#type-class_infos.ci_id_class" class="anchor"></a><code><span>ci_id_class : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-class_infos.ci_id_class_type" class="def record field anchored"><a href="#type-class_infos.ci_id_class_type" class="anchor"></a><code><span>ci_id_class_type : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-class_infos.ci_id_object" class="def record field anchored"><a href="#type-class_infos.ci_id_object" class="anchor"></a><code><span>ci_id_object : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-class_infos.ci_id_typehash" class="def record field anchored"><a href="#type-class_infos.ci_id_typehash" class="anchor"></a><code><span>ci_id_typehash : <a href="../Ident/index.html#type-t">Ident.t</a>;</span></code></li><li id="type-class_infos.ci_expr" class="def record field anchored"><a href="#type-class_infos.ci_expr" class="anchor"></a><code><span>ci_expr : <span class="type-var">'a</span>;</span></code></li><li id="type-class_infos.ci_decl" class="def record field anchored"><a href="#type-class_infos.ci_decl" class="anchor"></a><code><span>ci_decl : <a href="../Types/index.html#type-class_declaration">Types.class_declaration</a>;</span></code></li><li id="type-class_infos.ci_type_decl" class="def record field anchored"><a href="#type-class_infos.ci_type_decl" class="anchor"></a><code><span>ci_type_decl : <a href="../Types/index.html#type-class_type_declaration">Types.class_type_declaration</a>;</span></code></li><li id="type-class_infos.ci_loc" class="def record field anchored"><a href="#type-class_infos.ci_loc" class="anchor"></a><code><span>ci_loc : <a href="../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-class_infos.ci_attributes" class="def record field anchored"><a href="#type-class_infos.ci_attributes" class="anchor"></a><code><span>ci_attributes : <a href="#type-attributes">attributes</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-implementation"><a href="#type-implementation" class="anchor"></a><code><span><span class="keyword">type</span> implementation</span><span> = </span><span>{</span></code><ol><li id="type-implementation.structure" class="def record field anchored"><a href="#type-implementation.structure" class="anchor"></a><code><span>structure : <a href="#type-structure">structure</a>;</span></code></li><li id="type-implementation.coercion" class="def record field anchored"><a href="#type-implementation.coercion" class="anchor"></a><code><span>coercion : <a href="#type-module_coercion">module_coercion</a>;</span></code></li><li id="type-implementation.signature" class="def record field anchored"><a href="#type-implementation.signature" class="anchor"></a><code><span>signature : <a href="../Types/index.html#type-signature">Types.signature</a>;</span></code></li><li id="type-implementation.shape" class="def record field anchored"><a href="#type-implementation.shape" class="anchor"></a><code><span>shape : <a href="../Shape/index.html#type-t">Shape.t</a>;</span></code></li></ol><code><span>}</span></code></div><div class="spec-doc"><p>A typechecked implementation including its module structure, its exported signature, and a coercion of the module against that signature.</p><p>If an .mli file is present, the signature will come from that file and be the exported signature of the module.</p><p>If there isn't one, the signature will be inferred from the module structure.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-as_computation_pattern"><a href="#val-as_computation_pattern" class="anchor"></a><code><span><span class="keyword">val</span> as_computation_pattern : <span><a href="#type-pattern">pattern</a> <span class="arrow">-></span></span> <span><a href="#type-computation">computation</a> <a href="#type-general_pattern">general_pattern</a></span></span></code></div><div class="spec-doc"><p><code>as_computation_pattern p</code> is a computation pattern with description <code>Tpat_value p</code>, which enforces a correct placement of pat_attributes and pat_extra metadata (on the inner value pattern, rather than on the computation pattern).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-classify_pattern_desc"><a href="#val-classify_pattern_desc" class="anchor"></a><code><span><span class="keyword">val</span> classify_pattern_desc : <span><span><span class="type-var">'k</span> <a href="#type-pattern_desc">pattern_desc</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'k</span> <a href="#type-pattern_category">pattern_category</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-classify_pattern"><a href="#val-classify_pattern" class="anchor"></a><code><span><span class="keyword">val</span> classify_pattern : <span><span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'k</span> <a href="#type-pattern_category">pattern_category</a></span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-pattern_action"><a href="#type-pattern_action" class="anchor"></a><code><span><span class="keyword">type</span> pattern_action</span><span> = </span><span>{</span></code><ol><li id="type-pattern_action.f" class="def record field anchored"><a href="#type-pattern_action.f" class="anchor"></a><code><span>f : 'k. <span><span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span></span> unit;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shallow_iter_pattern_desc"><a href="#val-shallow_iter_pattern_desc" class="anchor"></a><code><span><span class="keyword">val</span> shallow_iter_pattern_desc : <span><a href="#type-pattern_action">pattern_action</a> <span class="arrow">-></span></span> <span><span><span class="type-var">'k</span> <a href="#type-pattern_desc">pattern_desc</a></span> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-pattern_transformation"><a href="#type-pattern_transformation" class="anchor"></a><code><span><span class="keyword">type</span> pattern_transformation</span><span> = </span><span>{</span></code><ol><li id="type-pattern_transformation.f" class="def record field anchored"><a href="#type-pattern_transformation.f" class="anchor"></a><code><span>f : 'k. <span><span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shallow_map_pattern_desc"><a href="#val-shallow_map_pattern_desc" class="anchor"></a><code><span><span class="keyword">val</span> shallow_map_pattern_desc :
|
||
<span><a href="#type-pattern_transformation">pattern_transformation</a> <span class="arrow">-></span></span>
|
||
<span><span><span class="type-var">'k</span> <a href="#type-pattern_desc">pattern_desc</a></span> <span class="arrow">-></span></span>
|
||
<span><span class="type-var">'k</span> <a href="#type-pattern_desc">pattern_desc</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-iter_general_pattern"><a href="#val-iter_general_pattern" class="anchor"></a><code><span><span class="keyword">val</span> iter_general_pattern : <span><a href="#type-pattern_action">pattern_action</a> <span class="arrow">-></span></span> <span><span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-iter_pattern"><a href="#val-iter_pattern" class="anchor"></a><code><span><span class="keyword">val</span> iter_pattern : <span><span>(<span><a href="#type-pattern">pattern</a> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span><a href="#type-pattern">pattern</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-pattern_predicate"><a href="#type-pattern_predicate" class="anchor"></a><code><span><span class="keyword">type</span> pattern_predicate</span><span> = </span><span>{</span></code><ol><li id="type-pattern_predicate.f" class="def record field anchored"><a href="#type-pattern_predicate.f" class="anchor"></a><code><span>f : 'k. <span><span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span></span> bool;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exists_general_pattern"><a href="#val-exists_general_pattern" class="anchor"></a><code><span><span class="keyword">val</span> exists_general_pattern : <span><a href="#type-pattern_predicate">pattern_predicate</a> <span class="arrow">-></span></span> <span><span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exists_pattern"><a href="#val-exists_pattern" class="anchor"></a><code><span><span class="keyword">val</span> exists_pattern : <span><span>(<span><a href="#type-pattern">pattern</a> <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span> <span><a href="#type-pattern">pattern</a> <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-let_bound_idents"><a href="#val-let_bound_idents" class="anchor"></a><code><span><span class="keyword">val</span> let_bound_idents : <span><span><a href="#type-value_binding">value_binding</a> list</span> <span class="arrow">-></span></span> <span><a href="../Ident/index.html#type-t">Ident.t</a> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-let_bound_idents_full"><a href="#val-let_bound_idents_full" class="anchor"></a><code><span><span class="keyword">val</span> let_bound_idents_full :
|
||
<span><span><a href="#type-value_binding">value_binding</a> list</span> <span class="arrow">-></span></span>
|
||
<span><span>(<a href="../Ident/index.html#type-t">Ident.t</a> * <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="../Types/index.html#type-type_expr">Types.type_expr</a>)</span> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-alpha_pat"><a href="#val-alpha_pat" class="anchor"></a><code><span><span class="keyword">val</span> alpha_pat :
|
||
<span><span><span>(<a href="../Ident/index.html#type-t">Ident.t</a> * <a href="../Ident/index.html#type-t">Ident.t</a>)</span> list</span> <span class="arrow">-></span></span>
|
||
<span><span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span></span>
|
||
<span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span></span></code></div><div class="spec-doc"><p>Alpha conversion of patterns</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mknoloc"><a href="#val-mknoloc" class="anchor"></a><code><span><span class="keyword">val</span> mknoloc : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-mkloc"><a href="#val-mkloc" class="anchor"></a><code><span><span class="keyword">val</span> mkloc : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><a href="../Location/index.html#type-t">Location.t</a> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pat_bound_idents"><a href="#val-pat_bound_idents" class="anchor"></a><code><span><span class="keyword">val</span> pat_bound_idents : <span><span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span></span> <span><a href="../Ident/index.html#type-t">Ident.t</a> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pat_bound_idents_full"><a href="#val-pat_bound_idents_full" class="anchor"></a><code><span><span class="keyword">val</span> pat_bound_idents_full :
|
||
<span><span><span class="type-var">'k</span> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span></span>
|
||
<span><span>(<a href="../Ident/index.html#type-t">Ident.t</a> * <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="../Types/index.html#type-type_expr">Types.type_expr</a>)</span> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-split_pattern"><a href="#val-split_pattern" class="anchor"></a><code><span><span class="keyword">val</span> split_pattern :
|
||
<span><span><a href="#type-computation">computation</a> <a href="#type-general_pattern">general_pattern</a></span> <span class="arrow">-></span></span>
|
||
<span><a href="#type-pattern">pattern</a> option</span> * <span><a href="#type-pattern">pattern</a> option</span></span></code></div><div class="spec-doc"><p>Splits an or pattern into its value (left) and exception (right) parts.</p></div></div></div></body></html>
|