ocaml-trace/ppxlib/Astlib/Ast_402/Parsetree/index.html
2024-03-08 16:51:12 +00:00

12 lines
No EOL
95 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Parsetree (ppxlib.Astlib.Ast_402.Parsetree)</title><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.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">ppxlib</a> &#x00BB; <a href="../../index.html">Astlib</a> &#x00BB; <a href="../index.html">Ast_402</a> &#x00BB; Parsetree</nav><header class="odoc-preamble"><h1>Module <code><span>Ast_402.Parsetree</span></code></h1><p>Abstract syntax tree produced by parsing</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><li><a href="#class-language">Class language</a></li><li><a href="#module-language">Module language</a></li><li><a href="#toplevel">Toplevel</a></li></ul></nav><div class="odoc-content"><h3 id="extension-points"><a href="#extension-points" class="anchor"></a>Extension points</h3><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> = <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-payload">payload</a></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-extension"><a href="#type-extension" class="anchor"></a><code><span><span class="keyword">and</span> extension</span><span> = <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-payload">payload</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">and</span> attributes</span><span> = <span><a href="#type-attribute">attribute</a> list</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-payload"><a href="#type-payload" class="anchor"></a><code><span><span class="keyword">and</span> payload</span><span> = </span></code><ol><li id="type-payload.PStr" class="def variant constructor anchored"><a href="#type-payload.PStr" class="anchor"></a><code><span>| </span><span><span class="constructor">PStr</span> <span class="keyword">of</span> <a href="#type-structure">structure</a></span></code></li><li id="type-payload.PTyp" class="def variant constructor anchored"><a href="#type-payload.PTyp" class="anchor"></a><code><span>| </span><span><span class="constructor">PTyp</span> <span class="keyword">of</span> <a href="#type-core_type">core_type</a></span></code></li><li id="type-payload.PPat" class="def variant constructor anchored"><a href="#type-payload.PPat" class="anchor"></a><code><span>| </span><span><span class="constructor">PPat</span> <span class="keyword">of</span> <a href="#type-pattern">pattern</a> * <span><a href="#type-expression">expression</a> option</span></span></code></li></ol></div></div><h3 id="core-language"><a href="#core-language" class="anchor"></a>Core language</h3><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.ptyp_desc" class="def record field anchored"><a href="#type-core_type.ptyp_desc" class="anchor"></a><code><span>ptyp_desc : <a href="#type-core_type_desc">core_type_desc</a>;</span></code></li><li id="type-core_type.ptyp_loc" class="def record field anchored"><a href="#type-core_type.ptyp_loc" class="anchor"></a><code><span>ptyp_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-core_type.ptyp_attributes" class="def record field anchored"><a href="#type-core_type.ptyp_attributes" class="anchor"></a><code><span>ptyp_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.Ptyp_any" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_any" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_any</span></span></code></li><li id="type-core_type_desc.Ptyp_var" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_var" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_var</span> <span class="keyword">of</span> string</span></code></li><li id="type-core_type_desc.Ptyp_arrow" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_arrow" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_arrow</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-label">Asttypes.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.Ptyp_tuple" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_tuple" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_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.Ptyp_constr" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_constr" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_constr</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> * <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-core_type_desc.Ptyp_object" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_object" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_object</span> <span class="keyword">of</span> <span><span>(string * <a href="#type-attributes">attributes</a> * <a href="#type-core_type">core_type</a>)</span> list</span> * <a href="../Asttypes/index.html#type-closed_flag">Asttypes.closed_flag</a></span></code></li><li id="type-core_type_desc.Ptyp_class" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_class" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_class</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> * <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-core_type_desc.Ptyp_alias" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_alias" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_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.Ptyp_variant" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_variant" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_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.Ptyp_poly" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_poly" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_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.Ptyp_package" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_package" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_package</span> <span class="keyword">of</span> <a href="#type-package_type">package_type</a></span></code></li><li id="type-core_type_desc.Ptyp_extension" class="def variant constructor anchored"><a href="#type-core_type_desc.Ptyp_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptyp_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</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><a href="../../Longident/index.html#type-t">Longident.t</a> <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></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="#type-core_type">core_type</a>)</span> list</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></code><ol><li id="type-row_field.Rtag" class="def variant constructor anchored"><a href="#type-row_field.Rtag" class="anchor"></a><code><span>| </span><span><span class="constructor">Rtag</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-label">Asttypes.label</a> * <a href="#type-attributes">attributes</a> * bool * <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-row_field.Rinherit" class="def variant constructor anchored"><a href="#type-row_field.Rinherit" class="anchor"></a><code><span>| </span><span><span class="constructor">Rinherit</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-pattern"><a href="#type-pattern" class="anchor"></a><code><span><span class="keyword">and</span> pattern</span><span> = </span><span>{</span></code><ol><li id="type-pattern.ppat_desc" class="def record field anchored"><a href="#type-pattern.ppat_desc" class="anchor"></a><code><span>ppat_desc : <a href="#type-pattern_desc">pattern_desc</a>;</span></code></li><li id="type-pattern.ppat_loc" class="def record field anchored"><a href="#type-pattern.ppat_loc" class="anchor"></a><code><span>ppat_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-pattern.ppat_attributes" class="def record field anchored"><a href="#type-pattern.ppat_attributes" class="anchor"></a><code><span>ppat_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-pattern_desc"><a href="#type-pattern_desc" class="anchor"></a><code><span><span class="keyword">and</span> pattern_desc</span><span> = </span></code><ol><li id="type-pattern_desc.Ppat_any" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_any" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_any</span></span></code></li><li id="type-pattern_desc.Ppat_var" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_var" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_var</span> <span class="keyword">of</span> <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></li><li id="type-pattern_desc.Ppat_alias" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_alias" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_alias</span> <span class="keyword">of</span> <a href="#type-pattern">pattern</a> * <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></li><li id="type-pattern_desc.Ppat_constant" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_constant" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_constant</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-constant">Asttypes.constant</a></span></code></li><li id="type-pattern_desc.Ppat_interval" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_interval" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_interval</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-constant">Asttypes.constant</a> * <a href="../Asttypes/index.html#type-constant">Asttypes.constant</a></span></code></li><li id="type-pattern_desc.Ppat_tuple" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_tuple" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_tuple</span> <span class="keyword">of</span> <span><a href="#type-pattern">pattern</a> list</span></span></code></li><li id="type-pattern_desc.Ppat_construct" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_construct" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_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> * <span><a href="#type-pattern">pattern</a> option</span></span></code></li><li id="type-pattern_desc.Ppat_variant" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_variant" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_variant</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-label">Asttypes.label</a> * <span><a href="#type-pattern">pattern</a> option</span></span></code></li><li id="type-pattern_desc.Ppat_record" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_record" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_record</span> <span class="keyword">of</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="#type-pattern">pattern</a>)</span> list</span> * <a href="../Asttypes/index.html#type-closed_flag">Asttypes.closed_flag</a></span></code></li><li id="type-pattern_desc.Ppat_array" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_array" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_array</span> <span class="keyword">of</span> <span><a href="#type-pattern">pattern</a> list</span></span></code></li><li id="type-pattern_desc.Ppat_or" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_or" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_or</span> <span class="keyword">of</span> <a href="#type-pattern">pattern</a> * <a href="#type-pattern">pattern</a></span></code></li><li id="type-pattern_desc.Ppat_constraint" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_constraint</span> <span class="keyword">of</span> <a href="#type-pattern">pattern</a> * <a href="#type-core_type">core_type</a></span></code></li><li id="type-pattern_desc.Ppat_type" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_type</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></span></code></li><li id="type-pattern_desc.Ppat_lazy" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_lazy" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_lazy</span> <span class="keyword">of</span> <a href="#type-pattern">pattern</a></span></code></li><li id="type-pattern_desc.Ppat_unpack" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_unpack" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_unpack</span> <span class="keyword">of</span> <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span></span></code></li><li id="type-pattern_desc.Ppat_exception" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_exception" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_exception</span> <span class="keyword">of</span> <a href="#type-pattern">pattern</a></span></code></li><li id="type-pattern_desc.Ppat_extension" class="def variant constructor anchored"><a href="#type-pattern_desc.Ppat_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Ppat_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</a></span></code></li></ol></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.pexp_desc" class="def record field anchored"><a href="#type-expression.pexp_desc" class="anchor"></a><code><span>pexp_desc : <a href="#type-expression_desc">expression_desc</a>;</span></code></li><li id="type-expression.pexp_loc" class="def record field anchored"><a href="#type-expression.pexp_loc" class="anchor"></a><code><span>pexp_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-expression.pexp_attributes" class="def record field anchored"><a href="#type-expression.pexp_attributes" class="anchor"></a><code><span>pexp_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-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.Pexp_ident" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_ident" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_ident</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></span></code></li><li id="type-expression_desc.Pexp_constant" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_constant" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_constant</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-constant">Asttypes.constant</a></span></code></li><li id="type-expression_desc.Pexp_let" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_let" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_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></li><li id="type-expression_desc.Pexp_function" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_function" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_function</span> <span class="keyword">of</span> <span><a href="#type-case">case</a> list</span></span></code></li><li id="type-expression_desc.Pexp_fun" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_fun" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_fun</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> * <a href="#type-pattern">pattern</a> * <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Pexp_apply" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_apply" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_apply</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <span><span>(<a href="../Asttypes/index.html#type-label">Asttypes.label</a> * <a href="#type-expression">expression</a>)</span> list</span></span></code></li><li id="type-expression_desc.Pexp_match" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_match" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_match</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <span><a href="#type-case">case</a> list</span></span></code></li><li id="type-expression_desc.Pexp_try" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_try" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_try</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <span><a href="#type-case">case</a> list</span></span></code></li><li id="type-expression_desc.Pexp_tuple" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_tuple" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_tuple</span> <span class="keyword">of</span> <span><a href="#type-expression">expression</a> list</span></span></code></li><li id="type-expression_desc.Pexp_construct" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_construct" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_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> * <span><a href="#type-expression">expression</a> option</span></span></code></li><li id="type-expression_desc.Pexp_variant" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_variant" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_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.Pexp_record" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_record" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_record</span> <span class="keyword">of</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="#type-expression">expression</a>)</span> list</span> * <span><a href="#type-expression">expression</a> option</span></span></code></li><li id="type-expression_desc.Pexp_field" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_field" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_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></span></code></li><li id="type-expression_desc.Pexp_setfield" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_setfield" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_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="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Pexp_array" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_array" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_array</span> <span class="keyword">of</span> <span><a href="#type-expression">expression</a> list</span></span></code></li><li id="type-expression_desc.Pexp_ifthenelse" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_ifthenelse" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_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.Pexp_sequence" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_sequence" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_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.Pexp_while" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_while" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_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.Pexp_for" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_for" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_for</span> <span class="keyword">of</span> <a href="#type-pattern">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.Pexp_constraint" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_constraint</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <a href="#type-core_type">core_type</a></span></code></li><li id="type-expression_desc.Pexp_coerce" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_coerce" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_coerce</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <span><a href="#type-core_type">core_type</a> option</span> * <a href="#type-core_type">core_type</a></span></code></li><li id="type-expression_desc.Pexp_send" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_send" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_send</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * string</span></code></li><li id="type-expression_desc.Pexp_new" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_new" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_new</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></span></code></li><li id="type-expression_desc.Pexp_setinstvar" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_setinstvar" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_setinstvar</span> <span class="keyword">of</span> <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.Pexp_override" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_override" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_override</span> <span class="keyword">of</span> <span><span>(<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.Pexp_letmodule" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_letmodule" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_letmodule</span> <span class="keyword">of</span> <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <a href="#type-module_expr">module_expr</a> * <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Pexp_assert" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_assert" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_assert</span> <span class="keyword">of</span> <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Pexp_lazy" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_lazy" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_lazy</span> <span class="keyword">of</span> <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Pexp_poly" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_poly" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_poly</span> <span class="keyword">of</span> <a href="#type-expression">expression</a> * <span><a href="#type-core_type">core_type</a> option</span></span></code></li><li id="type-expression_desc.Pexp_object" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_object" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_object</span> <span class="keyword">of</span> <a href="#type-class_structure">class_structure</a></span></code></li><li id="type-expression_desc.Pexp_newtype" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_newtype" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_newtype</span> <span class="keyword">of</span> string * <a href="#type-expression">expression</a></span></code></li><li id="type-expression_desc.Pexp_pack" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_pack" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_pack</span> <span class="keyword">of</span> <a href="#type-module_expr">module_expr</a></span></code></li><li id="type-expression_desc.Pexp_open" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_open</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-override_flag">Asttypes.override_flag</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-expression">expression</a></span></code></li><li id="type-expression_desc.Pexp_extension" class="def variant constructor anchored"><a href="#type-expression_desc.Pexp_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Pexp_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</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> case</span><span> = </span><span>{</span></code><ol><li id="type-case.pc_lhs" class="def record field anchored"><a href="#type-case.pc_lhs" class="anchor"></a><code><span>pc_lhs : <a href="#type-pattern">pattern</a>;</span></code></li><li id="type-case.pc_guard" class="def record field anchored"><a href="#type-case.pc_guard" class="anchor"></a><code><span>pc_guard : <span><a href="#type-expression">expression</a> option</span>;</span></code></li><li id="type-case.pc_rhs" class="def record field anchored"><a href="#type-case.pc_rhs" class="anchor"></a><code><span>pc_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-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.pval_name" class="def record field anchored"><a href="#type-value_description.pval_name" class="anchor"></a><code><span>pval_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-value_description.pval_type" class="def record field anchored"><a href="#type-value_description.pval_type" class="anchor"></a><code><span>pval_type : <a href="#type-core_type">core_type</a>;</span></code></li><li id="type-value_description.pval_prim" class="def record field anchored"><a href="#type-value_description.pval_prim" class="anchor"></a><code><span>pval_prim : <span>string list</span>;</span></code></li><li id="type-value_description.pval_attributes" class="def record field anchored"><a href="#type-value_description.pval_attributes" class="anchor"></a><code><span>pval_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-value_description.pval_loc" class="def record field anchored"><a href="#type-value_description.pval_loc" class="anchor"></a><code><span>pval_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-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.ptype_name" class="def record field anchored"><a href="#type-type_declaration.ptype_name" class="anchor"></a><code><span>ptype_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-type_declaration.ptype_params" class="def record field anchored"><a href="#type-type_declaration.ptype_params" class="anchor"></a><code><span>ptype_params : <span><span>(<a href="#type-core_type">core_type</a> * <a href="../Asttypes/index.html#type-variance">Asttypes.variance</a>)</span> list</span>;</span></code></li><li id="type-type_declaration.ptype_cstrs" class="def record field anchored"><a href="#type-type_declaration.ptype_cstrs" class="anchor"></a><code><span>ptype_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.ptype_kind" class="def record field anchored"><a href="#type-type_declaration.ptype_kind" class="anchor"></a><code><span>ptype_kind : <a href="#type-type_kind">type_kind</a>;</span></code></li><li id="type-type_declaration.ptype_private" class="def record field anchored"><a href="#type-type_declaration.ptype_private" class="anchor"></a><code><span>ptype_private : <a href="../Asttypes/index.html#type-private_flag">Asttypes.private_flag</a>;</span></code></li><li id="type-type_declaration.ptype_manifest" class="def record field anchored"><a href="#type-type_declaration.ptype_manifest" class="anchor"></a><code><span>ptype_manifest : <span><a href="#type-core_type">core_type</a> option</span>;</span></code></li><li id="type-type_declaration.ptype_attributes" class="def record field anchored"><a href="#type-type_declaration.ptype_attributes" class="anchor"></a><code><span>ptype_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-type_declaration.ptype_loc" class="def record field anchored"><a href="#type-type_declaration.ptype_loc" class="anchor"></a><code><span>ptype_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-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.Ptype_abstract" class="def variant constructor anchored"><a href="#type-type_kind.Ptype_abstract" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptype_abstract</span></span></code></li><li id="type-type_kind.Ptype_variant" class="def variant constructor anchored"><a href="#type-type_kind.Ptype_variant" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptype_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.Ptype_record" class="def variant constructor anchored"><a href="#type-type_kind.Ptype_record" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptype_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.Ptype_open" class="def variant constructor anchored"><a href="#type-type_kind.Ptype_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptype_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.pld_name" class="def record field anchored"><a href="#type-label_declaration.pld_name" class="anchor"></a><code><span>pld_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-label_declaration.pld_mutable" class="def record field anchored"><a href="#type-label_declaration.pld_mutable" class="anchor"></a><code><span>pld_mutable : <a href="../Asttypes/index.html#type-mutable_flag">Asttypes.mutable_flag</a>;</span></code></li><li id="type-label_declaration.pld_type" class="def record field anchored"><a href="#type-label_declaration.pld_type" class="anchor"></a><code><span>pld_type : <a href="#type-core_type">core_type</a>;</span></code></li><li id="type-label_declaration.pld_loc" class="def record field anchored"><a href="#type-label_declaration.pld_loc" class="anchor"></a><code><span>pld_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-label_declaration.pld_attributes" class="def record field anchored"><a href="#type-label_declaration.pld_attributes" class="anchor"></a><code><span>pld_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.pcd_name" class="def record field anchored"><a href="#type-constructor_declaration.pcd_name" class="anchor"></a><code><span>pcd_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-constructor_declaration.pcd_args" class="def record field anchored"><a href="#type-constructor_declaration.pcd_args" class="anchor"></a><code><span>pcd_args : <span><a href="#type-core_type">core_type</a> list</span>;</span></code></li><li id="type-constructor_declaration.pcd_res" class="def record field anchored"><a href="#type-constructor_declaration.pcd_res" class="anchor"></a><code><span>pcd_res : <span><a href="#type-core_type">core_type</a> option</span>;</span></code></li><li id="type-constructor_declaration.pcd_loc" class="def record field anchored"><a href="#type-constructor_declaration.pcd_loc" class="anchor"></a><code><span>pcd_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-constructor_declaration.pcd_attributes" class="def record field anchored"><a href="#type-constructor_declaration.pcd_attributes" class="anchor"></a><code><span>pcd_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_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.ptyext_path" class="def record field anchored"><a href="#type-type_extension.ptyext_path" class="anchor"></a><code><span>ptyext_path : <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.ptyext_params" class="def record field anchored"><a href="#type-type_extension.ptyext_params" class="anchor"></a><code><span>ptyext_params : <span><span>(<a href="#type-core_type">core_type</a> * <a href="../Asttypes/index.html#type-variance">Asttypes.variance</a>)</span> list</span>;</span></code></li><li id="type-type_extension.ptyext_constructors" class="def record field anchored"><a href="#type-type_extension.ptyext_constructors" class="anchor"></a><code><span>ptyext_constructors : <span><a href="#type-extension_constructor">extension_constructor</a> list</span>;</span></code></li><li id="type-type_extension.ptyext_private" class="def record field anchored"><a href="#type-type_extension.ptyext_private" class="anchor"></a><code><span>ptyext_private : <a href="../Asttypes/index.html#type-private_flag">Asttypes.private_flag</a>;</span></code></li><li id="type-type_extension.ptyext_attributes" class="def record field anchored"><a href="#type-type_extension.ptyext_attributes" class="anchor"></a><code><span>ptyext_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"><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.pext_name" class="def record field anchored"><a href="#type-extension_constructor.pext_name" class="anchor"></a><code><span>pext_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-extension_constructor.pext_kind" class="def record field anchored"><a href="#type-extension_constructor.pext_kind" class="anchor"></a><code><span>pext_kind : <a href="#type-extension_constructor_kind">extension_constructor_kind</a>;</span></code></li><li id="type-extension_constructor.pext_loc" class="def record field anchored"><a href="#type-extension_constructor.pext_loc" class="anchor"></a><code><span>pext_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-extension_constructor.pext_attributes" class="def record field anchored"><a href="#type-extension_constructor.pext_attributes" class="anchor"></a><code><span>pext_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.Pext_decl" class="def variant constructor anchored"><a href="#type-extension_constructor_kind.Pext_decl" class="anchor"></a><code><span>| </span><span><span class="constructor">Pext_decl</span> <span class="keyword">of</span> <span><a href="#type-core_type">core_type</a> list</span> * <span><a href="#type-core_type">core_type</a> option</span></span></code></li><li id="type-extension_constructor_kind.Pext_rebind" class="def variant constructor anchored"><a href="#type-extension_constructor_kind.Pext_rebind" class="anchor"></a><code><span>| </span><span><span class="constructor">Pext_rebind</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></span></code></li></ol></div></div><h3 id="class-language"><a href="#class-language" class="anchor"></a>Class language</h3><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.pcty_desc" class="def record field anchored"><a href="#type-class_type.pcty_desc" class="anchor"></a><code><span>pcty_desc : <a href="#type-class_type_desc">class_type_desc</a>;</span></code></li><li id="type-class_type.pcty_loc" class="def record field anchored"><a href="#type-class_type.pcty_loc" class="anchor"></a><code><span>pcty_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-class_type.pcty_attributes" class="def record field anchored"><a href="#type-class_type.pcty_attributes" class="anchor"></a><code><span>pcty_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.Pcty_constr" class="def variant constructor anchored"><a href="#type-class_type_desc.Pcty_constr" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcty_constr</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> * <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-class_type_desc.Pcty_signature" class="def variant constructor anchored"><a href="#type-class_type_desc.Pcty_signature" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcty_signature</span> <span class="keyword">of</span> <a href="#type-class_signature">class_signature</a></span></code></li><li id="type-class_type_desc.Pcty_arrow" class="def variant constructor anchored"><a href="#type-class_type_desc.Pcty_arrow" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcty_arrow</span> <span class="keyword">of</span> <a href="../Asttypes/index.html#type-label">Asttypes.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.Pcty_extension" class="def variant constructor anchored"><a href="#type-class_type_desc.Pcty_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcty_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</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.pcsig_self" class="def record field anchored"><a href="#type-class_signature.pcsig_self" class="anchor"></a><code><span>pcsig_self : <a href="#type-core_type">core_type</a>;</span></code></li><li id="type-class_signature.pcsig_fields" class="def record field anchored"><a href="#type-class_signature.pcsig_fields" class="anchor"></a><code><span>pcsig_fields : <span><a href="#type-class_type_field">class_type_field</a> list</span>;</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.pctf_desc" class="def record field anchored"><a href="#type-class_type_field.pctf_desc" class="anchor"></a><code><span>pctf_desc : <a href="#type-class_type_field_desc">class_type_field_desc</a>;</span></code></li><li id="type-class_type_field.pctf_loc" class="def record field anchored"><a href="#type-class_type_field.pctf_loc" class="anchor"></a><code><span>pctf_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-class_type_field.pctf_attributes" class="def record field anchored"><a href="#type-class_type_field.pctf_attributes" class="anchor"></a><code><span>pctf_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.Pctf_inherit" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Pctf_inherit" class="anchor"></a><code><span>| </span><span><span class="constructor">Pctf_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.Pctf_val" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Pctf_val" class="anchor"></a><code><span>| </span><span><span class="constructor">Pctf_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.Pctf_method" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Pctf_method" class="anchor"></a><code><span>| </span><span><span class="constructor">Pctf_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.Pctf_constraint" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Pctf_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Pctf_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.Pctf_attribute" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Pctf_attribute" class="anchor"></a><code><span>| </span><span><span class="constructor">Pctf_attribute</span> <span class="keyword">of</span> <a href="#type-attribute">attribute</a></span></code></li><li id="type-class_type_field_desc.Pctf_extension" class="def variant constructor anchored"><a href="#type-class_type_field_desc.Pctf_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Pctf_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</a></span></code></li></ol></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.pci_virt" class="def record field anchored"><a href="#type-class_infos.pci_virt" class="anchor"></a><code><span>pci_virt : <a href="../Asttypes/index.html#type-virtual_flag">Asttypes.virtual_flag</a>;</span></code></li><li id="type-class_infos.pci_params" class="def record field anchored"><a href="#type-class_infos.pci_params" class="anchor"></a><code><span>pci_params : <span><span>(<a href="#type-core_type">core_type</a> * <a href="../Asttypes/index.html#type-variance">Asttypes.variance</a>)</span> list</span>;</span></code></li><li id="type-class_infos.pci_name" class="def record field anchored"><a href="#type-class_infos.pci_name" class="anchor"></a><code><span>pci_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-class_infos.pci_expr" class="def record field anchored"><a href="#type-class_infos.pci_expr" class="anchor"></a><code><span>pci_expr : <span class="type-var">'a</span>;</span></code></li><li id="type-class_infos.pci_loc" class="def record field anchored"><a href="#type-class_infos.pci_loc" class="anchor"></a><code><span>pci_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-class_infos.pci_attributes" class="def record field anchored"><a href="#type-class_infos.pci_attributes" class="anchor"></a><code><span>pci_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_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_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.pcl_desc" class="def record field anchored"><a href="#type-class_expr.pcl_desc" class="anchor"></a><code><span>pcl_desc : <a href="#type-class_expr_desc">class_expr_desc</a>;</span></code></li><li id="type-class_expr.pcl_loc" class="def record field anchored"><a href="#type-class_expr.pcl_loc" class="anchor"></a><code><span>pcl_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-class_expr.pcl_attributes" class="def record field anchored"><a href="#type-class_expr.pcl_attributes" class="anchor"></a><code><span>pcl_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.Pcl_constr" class="def variant constructor anchored"><a href="#type-class_expr_desc.Pcl_constr" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcl_constr</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> * <span><a href="#type-core_type">core_type</a> list</span></span></code></li><li id="type-class_expr_desc.Pcl_structure" class="def variant constructor anchored"><a href="#type-class_expr_desc.Pcl_structure" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcl_structure</span> <span class="keyword">of</span> <a href="#type-class_structure">class_structure</a></span></code></li><li id="type-class_expr_desc.Pcl_fun" class="def variant constructor anchored"><a href="#type-class_expr_desc.Pcl_fun" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcl_fun</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> * <a href="#type-pattern">pattern</a> * <a href="#type-class_expr">class_expr</a></span></code></li><li id="type-class_expr_desc.Pcl_apply" class="def variant constructor anchored"><a href="#type-class_expr_desc.Pcl_apply" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcl_apply</span> <span class="keyword">of</span> <a href="#type-class_expr">class_expr</a> * <span><span>(<a href="../Asttypes/index.html#type-label">Asttypes.label</a> * <a href="#type-expression">expression</a>)</span> list</span></span></code></li><li id="type-class_expr_desc.Pcl_let" class="def variant constructor anchored"><a href="#type-class_expr_desc.Pcl_let" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcl_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-class_expr">class_expr</a></span></code></li><li id="type-class_expr_desc.Pcl_constraint" class="def variant constructor anchored"><a href="#type-class_expr_desc.Pcl_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcl_constraint</span> <span class="keyword">of</span> <a href="#type-class_expr">class_expr</a> * <a href="#type-class_type">class_type</a></span></code></li><li id="type-class_expr_desc.Pcl_extension" class="def variant constructor anchored"><a href="#type-class_expr_desc.Pcl_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcl_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</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.pcstr_self" class="def record field anchored"><a href="#type-class_structure.pcstr_self" class="anchor"></a><code><span>pcstr_self : <a href="#type-pattern">pattern</a>;</span></code></li><li id="type-class_structure.pcstr_fields" class="def record field anchored"><a href="#type-class_structure.pcstr_fields" class="anchor"></a><code><span>pcstr_fields : <span><a href="#type-class_field">class_field</a> list</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.pcf_desc" class="def record field anchored"><a href="#type-class_field.pcf_desc" class="anchor"></a><code><span>pcf_desc : <a href="#type-class_field_desc">class_field_desc</a>;</span></code></li><li id="type-class_field.pcf_loc" class="def record field anchored"><a href="#type-class_field.pcf_loc" class="anchor"></a><code><span>pcf_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-class_field.pcf_attributes" class="def record field anchored"><a href="#type-class_field.pcf_attributes" class="anchor"></a><code><span>pcf_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_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.Pcf_inherit" class="def variant constructor anchored"><a href="#type-class_field_desc.Pcf_inherit" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcf_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></code></li><li id="type-class_field_desc.Pcf_val" class="def variant constructor anchored"><a href="#type-class_field_desc.Pcf_val" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcf_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="#type-class_field_kind">class_field_kind</a></span></code></li><li id="type-class_field_desc.Pcf_method" class="def variant constructor anchored"><a href="#type-class_field_desc.Pcf_method" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcf_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.Pcf_constraint" class="def variant constructor anchored"><a href="#type-class_field_desc.Pcf_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcf_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.Pcf_initializer" class="def variant constructor anchored"><a href="#type-class_field_desc.Pcf_initializer" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcf_initializer</span> <span class="keyword">of</span> <a href="#type-expression">expression</a></span></code></li><li id="type-class_field_desc.Pcf_attribute" class="def variant constructor anchored"><a href="#type-class_field_desc.Pcf_attribute" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcf_attribute</span> <span class="keyword">of</span> <a href="#type-attribute">attribute</a></span></code></li><li id="type-class_field_desc.Pcf_extension" class="def variant constructor anchored"><a href="#type-class_field_desc.Pcf_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Pcf_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</a></span></code></li></ol></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.Cfk_virtual" class="def variant constructor anchored"><a href="#type-class_field_kind.Cfk_virtual" class="anchor"></a><code><span>| </span><span><span class="constructor">Cfk_virtual</span> <span class="keyword">of</span> <a href="#type-core_type">core_type</a></span></code></li><li id="type-class_field_kind.Cfk_concrete" class="def variant constructor anchored"><a href="#type-class_field_kind.Cfk_concrete" class="anchor"></a><code><span>| </span><span><span class="constructor">Cfk_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_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><h3 id="module-language"><a href="#module-language" class="anchor"></a>Module language</h3><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.pmty_desc" class="def record field anchored"><a href="#type-module_type.pmty_desc" class="anchor"></a><code><span>pmty_desc : <a href="#type-module_type_desc">module_type_desc</a>;</span></code></li><li id="type-module_type.pmty_loc" class="def record field anchored"><a href="#type-module_type.pmty_loc" class="anchor"></a><code><span>pmty_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-module_type.pmty_attributes" class="def record field anchored"><a href="#type-module_type.pmty_attributes" class="anchor"></a><code><span>pmty_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.Pmty_ident" class="def variant constructor anchored"><a href="#type-module_type_desc.Pmty_ident" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmty_ident</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></span></code></li><li id="type-module_type_desc.Pmty_signature" class="def variant constructor anchored"><a href="#type-module_type_desc.Pmty_signature" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmty_signature</span> <span class="keyword">of</span> <a href="#type-signature">signature</a></span></code></li><li id="type-module_type_desc.Pmty_functor" class="def variant constructor anchored"><a href="#type-module_type_desc.Pmty_functor" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmty_functor</span> <span class="keyword">of</span> <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <span><a href="#type-module_type">module_type</a> option</span> * <a href="#type-module_type">module_type</a></span></code></li><li id="type-module_type_desc.Pmty_with" class="def variant constructor anchored"><a href="#type-module_type_desc.Pmty_with" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmty_with</span> <span class="keyword">of</span> <a href="#type-module_type">module_type</a> * <span><a href="#type-with_constraint">with_constraint</a> list</span></span></code></li><li id="type-module_type_desc.Pmty_typeof" class="def variant constructor anchored"><a href="#type-module_type_desc.Pmty_typeof" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmty_typeof</span> <span class="keyword">of</span> <a href="#type-module_expr">module_expr</a></span></code></li><li id="type-module_type_desc.Pmty_extension" class="def variant constructor anchored"><a href="#type-module_type_desc.Pmty_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmty_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</a></span></code></li><li id="type-module_type_desc.Pmty_alias" class="def variant constructor anchored"><a href="#type-module_type_desc.Pmty_alias" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmty_alias</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></span></code></li></ol></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><a href="#type-signature_item">signature_item</a> list</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.psig_desc" class="def record field anchored"><a href="#type-signature_item.psig_desc" class="anchor"></a><code><span>psig_desc : <a href="#type-signature_item_desc">signature_item_desc</a>;</span></code></li><li id="type-signature_item.psig_loc" class="def record field anchored"><a href="#type-signature_item.psig_loc" class="anchor"></a><code><span>psig_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.Psig_value" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_value" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_value</span> <span class="keyword">of</span> <a href="#type-value_description">value_description</a></span></code></li><li id="type-signature_item_desc.Psig_type" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_type</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.Psig_typext" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_typext" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_typext</span> <span class="keyword">of</span> <a href="#type-type_extension">type_extension</a></span></code></li><li id="type-signature_item_desc.Psig_exception" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_exception" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_exception</span> <span class="keyword">of</span> <a href="#type-extension_constructor">extension_constructor</a></span></code></li><li id="type-signature_item_desc.Psig_module" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_module" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_module</span> <span class="keyword">of</span> <a href="#type-module_declaration">module_declaration</a></span></code></li><li id="type-signature_item_desc.Psig_recmodule" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_recmodule" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_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.Psig_modtype" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_modtype" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_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.Psig_open" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_open</span> <span class="keyword">of</span> <a href="#type-open_description">open_description</a></span></code></li><li id="type-signature_item_desc.Psig_include" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_include" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_include</span> <span class="keyword">of</span> <a href="#type-include_description">include_description</a></span></code></li><li id="type-signature_item_desc.Psig_class" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_class" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_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.Psig_class_type" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_class_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_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.Psig_attribute" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_attribute" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_attribute</span> <span class="keyword">of</span> <a href="#type-attribute">attribute</a></span></code></li><li id="type-signature_item_desc.Psig_extension" class="def variant constructor anchored"><a href="#type-signature_item_desc.Psig_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Psig_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</a> * <a href="#type-attributes">attributes</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.pmd_name" class="def record field anchored"><a href="#type-module_declaration.pmd_name" class="anchor"></a><code><span>pmd_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-module_declaration.pmd_type" class="def record field anchored"><a href="#type-module_declaration.pmd_type" class="anchor"></a><code><span>pmd_type : <a href="#type-module_type">module_type</a>;</span></code></li><li id="type-module_declaration.pmd_attributes" class="def record field anchored"><a href="#type-module_declaration.pmd_attributes" class="anchor"></a><code><span>pmd_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-module_declaration.pmd_loc" class="def record field anchored"><a href="#type-module_declaration.pmd_loc" class="anchor"></a><code><span>pmd_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.pmtd_name" class="def record field anchored"><a href="#type-module_type_declaration.pmtd_name" class="anchor"></a><code><span>pmtd_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-module_type_declaration.pmtd_type" class="def record field anchored"><a href="#type-module_type_declaration.pmtd_type" class="anchor"></a><code><span>pmtd_type : <span><a href="#type-module_type">module_type</a> option</span>;</span></code></li><li id="type-module_type_declaration.pmtd_attributes" class="def record field anchored"><a href="#type-module_type_declaration.pmtd_attributes" class="anchor"></a><code><span>pmtd_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-module_type_declaration.pmtd_loc" class="def record field anchored"><a href="#type-module_type_declaration.pmtd_loc" class="anchor"></a><code><span>pmtd_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_description"><a href="#type-open_description" class="anchor"></a><code><span><span class="keyword">and</span> open_description</span><span> = </span><span>{</span></code><ol><li id="type-open_description.popen_lid" class="def record field anchored"><a href="#type-open_description.popen_lid" class="anchor"></a><code><span>popen_lid : <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-open_description.popen_override" class="def record field anchored"><a href="#type-open_description.popen_override" class="anchor"></a><code><span>popen_override : <a href="../Asttypes/index.html#type-override_flag">Asttypes.override_flag</a>;</span></code></li><li id="type-open_description.popen_loc" class="def record field anchored"><a href="#type-open_description.popen_loc" class="anchor"></a><code><span>popen_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-open_description.popen_attributes" class="def record field anchored"><a href="#type-open_description.popen_attributes" class="anchor"></a><code><span>popen_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-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.pincl_mod" class="def record field anchored"><a href="#type-include_infos.pincl_mod" class="anchor"></a><code><span>pincl_mod : <span class="type-var">'a</span>;</span></code></li><li id="type-include_infos.pincl_loc" class="def record field anchored"><a href="#type-include_infos.pincl_loc" class="anchor"></a><code><span>pincl_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-include_infos.pincl_attributes" class="def record field anchored"><a href="#type-include_infos.pincl_attributes" class="anchor"></a><code><span>pincl_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-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.Pwith_type" class="def variant constructor anchored"><a href="#type-with_constraint.Pwith_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Pwith_type</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-type_declaration">type_declaration</a></span></code></li><li id="type-with_constraint.Pwith_module" class="def variant constructor anchored"><a href="#type-with_constraint.Pwith_module" class="anchor"></a><code><span>| </span><span><span class="constructor">Pwith_module</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> * <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.Pwith_typesubst" class="def variant constructor anchored"><a href="#type-with_constraint.Pwith_typesubst" class="anchor"></a><code><span>| </span><span><span class="constructor">Pwith_typesubst</span> <span class="keyword">of</span> <a href="#type-type_declaration">type_declaration</a></span></code></li><li id="type-with_constraint.Pwith_modsubst" class="def variant constructor anchored"><a href="#type-with_constraint.Pwith_modsubst" class="anchor"></a><code><span>| </span><span><span class="constructor">Pwith_modsubst</span> <span class="keyword">of</span> <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <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-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.pmod_desc" class="def record field anchored"><a href="#type-module_expr.pmod_desc" class="anchor"></a><code><span>pmod_desc : <a href="#type-module_expr_desc">module_expr_desc</a>;</span></code></li><li id="type-module_expr.pmod_loc" class="def record field anchored"><a href="#type-module_expr.pmod_loc" class="anchor"></a><code><span>pmod_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li><li id="type-module_expr.pmod_attributes" class="def record field anchored"><a href="#type-module_expr.pmod_attributes" class="anchor"></a><code><span>pmod_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_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.Pmod_ident" class="def variant constructor anchored"><a href="#type-module_expr_desc.Pmod_ident" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmod_ident</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></span></code></li><li id="type-module_expr_desc.Pmod_structure" class="def variant constructor anchored"><a href="#type-module_expr_desc.Pmod_structure" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmod_structure</span> <span class="keyword">of</span> <a href="#type-structure">structure</a></span></code></li><li id="type-module_expr_desc.Pmod_functor" class="def variant constructor anchored"><a href="#type-module_expr_desc.Pmod_functor" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmod_functor</span> <span class="keyword">of</span> <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span> * <span><a href="#type-module_type">module_type</a> option</span> * <a href="#type-module_expr">module_expr</a></span></code></li><li id="type-module_expr_desc.Pmod_apply" class="def variant constructor anchored"><a href="#type-module_expr_desc.Pmod_apply" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmod_apply</span> <span class="keyword">of</span> <a href="#type-module_expr">module_expr</a> * <a href="#type-module_expr">module_expr</a></span></code></li><li id="type-module_expr_desc.Pmod_constraint" class="def variant constructor anchored"><a href="#type-module_expr_desc.Pmod_constraint" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmod_constraint</span> <span class="keyword">of</span> <a href="#type-module_expr">module_expr</a> * <a href="#type-module_type">module_type</a></span></code></li><li id="type-module_expr_desc.Pmod_unpack" class="def variant constructor anchored"><a href="#type-module_expr_desc.Pmod_unpack" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmod_unpack</span> <span class="keyword">of</span> <a href="#type-expression">expression</a></span></code></li><li id="type-module_expr_desc.Pmod_extension" class="def variant constructor anchored"><a href="#type-module_expr_desc.Pmod_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Pmod_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</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><a href="#type-structure_item">structure_item</a> list</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.pstr_desc" class="def record field anchored"><a href="#type-structure_item.pstr_desc" class="anchor"></a><code><span>pstr_desc : <a href="#type-structure_item_desc">structure_item_desc</a>;</span></code></li><li id="type-structure_item.pstr_loc" class="def record field anchored"><a href="#type-structure_item.pstr_loc" class="anchor"></a><code><span>pstr_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-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.Pstr_eval" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_eval" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_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.Pstr_value" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_value" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_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.Pstr_primitive" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_primitive" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_primitive</span> <span class="keyword">of</span> <a href="#type-value_description">value_description</a></span></code></li><li id="type-structure_item_desc.Pstr_type" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_type</span> <span class="keyword">of</span> <span><a href="#type-type_declaration">type_declaration</a> list</span></span></code></li><li id="type-structure_item_desc.Pstr_typext" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_typext" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_typext</span> <span class="keyword">of</span> <a href="#type-type_extension">type_extension</a></span></code></li><li id="type-structure_item_desc.Pstr_exception" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_exception" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_exception</span> <span class="keyword">of</span> <a href="#type-extension_constructor">extension_constructor</a></span></code></li><li id="type-structure_item_desc.Pstr_module" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_module" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_module</span> <span class="keyword">of</span> <a href="#type-module_binding">module_binding</a></span></code></li><li id="type-structure_item_desc.Pstr_recmodule" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_recmodule" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_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.Pstr_modtype" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_modtype" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_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.Pstr_open" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_open" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_open</span> <span class="keyword">of</span> <a href="#type-open_description">open_description</a></span></code></li><li id="type-structure_item_desc.Pstr_class" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_class" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_class</span> <span class="keyword">of</span> <span><a href="#type-class_declaration">class_declaration</a> list</span></span></code></li><li id="type-structure_item_desc.Pstr_class_type" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_class_type" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_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-structure_item_desc.Pstr_include" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_include" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_include</span> <span class="keyword">of</span> <a href="#type-include_declaration">include_declaration</a></span></code></li><li id="type-structure_item_desc.Pstr_attribute" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_attribute" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_attribute</span> <span class="keyword">of</span> <a href="#type-attribute">attribute</a></span></code></li><li id="type-structure_item_desc.Pstr_extension" class="def variant constructor anchored"><a href="#type-structure_item_desc.Pstr_extension" class="anchor"></a><code><span>| </span><span><span class="constructor">Pstr_extension</span> <span class="keyword">of</span> <a href="#type-extension">extension</a> * <a href="#type-attributes">attributes</a></span></code></li></ol></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.pvb_pat" class="def record field anchored"><a href="#type-value_binding.pvb_pat" class="anchor"></a><code><span>pvb_pat : <a href="#type-pattern">pattern</a>;</span></code></li><li id="type-value_binding.pvb_expr" class="def record field anchored"><a href="#type-value_binding.pvb_expr" class="anchor"></a><code><span>pvb_expr : <a href="#type-expression">expression</a>;</span></code></li><li id="type-value_binding.pvb_attributes" class="def record field anchored"><a href="#type-value_binding.pvb_attributes" class="anchor"></a><code><span>pvb_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-value_binding.pvb_loc" class="def record field anchored"><a href="#type-value_binding.pvb_loc" class="anchor"></a><code><span>pvb_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_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.pmb_name" class="def record field anchored"><a href="#type-module_binding.pmb_name" class="anchor"></a><code><span>pmb_name : <span>string <a href="../Asttypes/index.html#type-loc">Asttypes.loc</a></span>;</span></code></li><li id="type-module_binding.pmb_expr" class="def record field anchored"><a href="#type-module_binding.pmb_expr" class="anchor"></a><code><span>pmb_expr : <a href="#type-module_expr">module_expr</a>;</span></code></li><li id="type-module_binding.pmb_attributes" class="def record field anchored"><a href="#type-module_binding.pmb_attributes" class="anchor"></a><code><span>pmb_attributes : <a href="#type-attributes">attributes</a>;</span></code></li><li id="type-module_binding.pmb_loc" class="def record field anchored"><a href="#type-module_binding.pmb_loc" class="anchor"></a><code><span>pmb_loc : <a href="../../Location/index.html#type-t">Location.t</a>;</span></code></li></ol><code><span>}</span></code></div></div><h3 id="toplevel"><a href="#toplevel" class="anchor"></a>Toplevel</h3><div class="odoc-spec"><div class="spec type anchored" id="type-toplevel_phrase"><a href="#type-toplevel_phrase" class="anchor"></a><code><span><span class="keyword">type</span> toplevel_phrase</span><span> = </span></code><ol><li id="type-toplevel_phrase.Ptop_def" class="def variant constructor anchored"><a href="#type-toplevel_phrase.Ptop_def" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptop_def</span> <span class="keyword">of</span> <a href="#type-structure">structure</a></span></code></li><li id="type-toplevel_phrase.Ptop_dir" class="def variant constructor anchored"><a href="#type-toplevel_phrase.Ptop_dir" class="anchor"></a><code><span>| </span><span><span class="constructor">Ptop_dir</span> <span class="keyword">of</span> string * <a href="#type-directive_argument">directive_argument</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-directive_argument"><a href="#type-directive_argument" class="anchor"></a><code><span><span class="keyword">and</span> directive_argument</span><span> = </span></code><ol><li id="type-directive_argument.Pdir_none" class="def variant constructor anchored"><a href="#type-directive_argument.Pdir_none" class="anchor"></a><code><span>| </span><span><span class="constructor">Pdir_none</span></span></code></li><li id="type-directive_argument.Pdir_string" class="def variant constructor anchored"><a href="#type-directive_argument.Pdir_string" class="anchor"></a><code><span>| </span><span><span class="constructor">Pdir_string</span> <span class="keyword">of</span> string</span></code></li><li id="type-directive_argument.Pdir_int" class="def variant constructor anchored"><a href="#type-directive_argument.Pdir_int" class="anchor"></a><code><span>| </span><span><span class="constructor">Pdir_int</span> <span class="keyword">of</span> int</span></code></li><li id="type-directive_argument.Pdir_ident" class="def variant constructor anchored"><a href="#type-directive_argument.Pdir_ident" class="anchor"></a><code><span>| </span><span><span class="constructor">Pdir_ident</span> <span class="keyword">of</span> <a href="../../Longident/index.html#type-t">Longident.t</a></span></code></li><li id="type-directive_argument.Pdir_bool" class="def variant constructor anchored"><a href="#type-directive_argument.Pdir_bool" class="anchor"></a><code><span>| </span><span><span class="constructor">Pdir_bool</span> <span class="keyword">of</span> bool</span></code></li></ol></div></div></div></body></html>