You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
38 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Call (InferIR.InferIR__ProcnameDispatcher.Call)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">InferIR</a> &#x00BB; <a href="../index.html">InferIR__ProcnameDispatcher</a> &#x00BB; Call</nav><h1>Module <code>InferIR__ProcnameDispatcher.Call</code></h1></header><dl><dt class="spec module" id="module-FuncArg"><a href="#module-FuncArg" class="anchor"></a><code><span class="keyword">module</span> <a href="FuncArg/index.html">FuncArg</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd><p>Little abstraction over arguments: currently actual args, we'll want formal args later</p></dd></dl><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="../index.html#module-type-Common">Common</a> <span class="keyword">with</span> <span class="keyword">type</span> <span>('context, 'f) <a href="../module-type-Common/index.html#type-dispatcher">dispatcher</a></span> = <span class="type-var">'context</span> <span>&#45;&gt;</span> <a href="../../InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span>&#45;&gt;</span> <span><a href="FuncArg/index.html#type-t">FuncArg.t</a> list</span> <span>&#45;&gt;</span> <span><span class="type-var">'f</span> option</span></code></span></summary><dl><dt class="spec type" id="type-matcher"><a href="#type-matcher" class="anchor"></a><code><span class="keyword">type</span> <span>('context, 'f) matcher</span></code></dt><dt class="spec type" id="type-dispatcher"><a href="#type-dispatcher" class="anchor"></a><code><span class="keyword">type</span> <span>('context, 'f) dispatcher</span></code><code> = <span class="type-var">'context</span> <span>&#45;&gt;</span> <a href="../../InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span>&#45;&gt;</span> <span><a href="FuncArg/index.html#type-t">FuncArg.t</a> list</span> <span>&#45;&gt;</span> <span><span class="type-var">'f</span> option</span></code></dt></dl><dl><dt class="spec value" id="val-make_dispatcher"><a href="#val-make_dispatcher" class="anchor"></a><code><span class="keyword">val</span> make_dispatcher : <span><span><span>(<span class="type-var">'context</span>, <span class="type-var">'f</span>)</span> <a href="index.html#type-matcher">matcher</a></span> list</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f</span>)</span> <a href="index.html#type-dispatcher">dispatcher</a></span></code></dt><dd><p>Combines matchers to create a dispatcher</p></dd></dl><dl><dt class="spec value" id="val-any_typ"><a href="#val-any_typ" class="anchor"></a><code><span class="keyword">val</span> any_typ : <span><span>(<span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>, <span class="type-var">'markers</span>, <a href="../index.html#type-accept_more">accept_more</a>)</span> <a href="../index.html#type-template_arg">template_arg</a></span></code></dt><dd><p>Eats a type</p></dd></dl><dl><dt class="spec value" id="val-capt_typ"><a href="#val-capt_typ" class="anchor"></a><code><span class="keyword">val</span> capt_typ : <span class="type-var">'marker</span> <span>&#45;&gt;</span> <span><span>(<span><span class="type-var">'marker</span> <a href="../index.html#type-mtyp">mtyp</a></span> <span>&#45;&gt;</span> <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">'captured_types</span>, <span><span class="type-var">'marker</span> <a href="../index.html#type-mtyp">mtyp</a></span> * <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>, <span class="type-var">'marker</span> * <span class="type-var">'markers</span>, <a href="../index.html#type-accept_more">accept_more</a>)</span> <a href="../index.html#type-template_arg">template_arg</a></span></code></dt><dd><p>Captures a type than can be back-referenced</p></dd></dl><dl><dt class="spec value" id="val-capt_int"><a href="#val-capt_int" class="anchor"></a><code><span class="keyword">val</span> capt_int : <span><span>(<a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Int64.t <span>&#45;&gt;</span> <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>, <span class="type-var">'markers</span>, <a href="../index.html#type-accept_more">accept_more</a>)</span> <a href="../index.html#type-template_arg">template_arg</a></span></code></dt><dd><p>Captures an int</p></dd></dl><dl><dt class="spec value" id="val-capt_all"><a href="#val-capt_all" class="anchor"></a><code><span class="keyword">val</span> capt_all : <span><span>(<span><a href="../../InferIR/Typ/index.html#type-template_arg">InferIR.Typ.template_arg</a> list</span> <span>&#45;&gt;</span> <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>, <span class="type-var">'markers</span>, <a href="../index.html#type-end_of_list">end_of_list</a>)</span> <a href="../index.html#type-template_arg">template_arg</a></span></code></dt><dd><p>Captures all template args</p></dd></dl><dl><dt class="spec value" id="val-(~-)"><a href="#val-(~-)" class="anchor"></a><code><span class="keyword">val</span> (~-) : string <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f</span>, <span class="type-var">'f</span>, unit, <span class="type-var">'markers</span>, <span class="type-var">'markers</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span></code></dt><dd><p>Starts a path with a name</p></dd></dl><dl><dt class="spec value" id="val-(~+)"><a href="#val-(~+)" class="anchor"></a><code><span class="keyword">val</span> (~+) : <span>(<span class="type-var">'context</span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f</span>, <span class="type-var">'f</span>, unit, <span class="type-var">'markers</span>, <span class="type-var">'markers</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span></code></dt><dd><p>Starts a path with a matching name that satisfies the given function</p></dd></dl><dl><dt class="spec value" id="val-(&amp;+)"><a href="#val-(&amp;+)" class="anchor"></a><code><span class="keyword">val</span> (&amp;+) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_interm</span>, <span class="type-var">'captured_types_in</span>, <span class="type-var">'markers_interm</span>, <span class="type-var">'markers_out</span>, <a href="../index.html#type-accept_more">accept_more</a>)</span> <a href="../index.html#type-templ_matcher">templ_matcher</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'f_interm</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types_in</span>, <span class="type-var">'captured_types_out</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_interm</span>, <span class="type-var">'lc</span>)</span> <a href="../index.html#type-template_arg">template_arg</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types_out</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>, <span class="type-var">'lc</span>)</span> <a href="../index.html#type-templ_matcher">templ_matcher</a></span></code></dt><dd><p>Separate template arguments</p></dd></dl><dl><dt class="spec value" id="val-(&lt;)"><a href="#val-(&lt;)" class="anchor"></a><code><span class="keyword">val</span> (&lt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_interm</span>, <span class="type-var">'captured_types_in</span>, <span class="type-var">'markers_interm</span>, <span class="type-var">'markers_out</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'f_interm</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types_in</span>, <span class="type-var">'captured_types_out</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_interm</span>, <span class="type-var">'lc</span>)</span> <a href="../index.html#type-template_arg">template_arg</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types_out</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>, <span class="type-var">'lc</span>)</span> <a href="../index.html#type-templ_matcher">templ_matcher</a></span></code></dt><dd><p>Starts template arguments after a name</p></dd></dl><dl><dt class="spec value" id="val-(&gt;::)"><a href="#val-(&gt;::)" class="anchor"></a><code><span class="keyword">val</span> (&gt;::) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>, <span class="type-var">_</span>)</span> <a href="../index.html#type-templ_matcher">templ_matcher</a></span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span></code></dt><dd><p>Ends template arguments and starts a name</p></dd></dl><dl><dt class="spec value" id="val-(&amp;+...&gt;::)"><a href="#val-(&amp;+...&gt;::)" class="anchor"></a><code><span class="keyword">val</span> (&amp;+...&gt;::) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>, <a href="../index.html#type-accept_more">accept_more</a>)</span> <a href="../index.html#type-templ_matcher">templ_matcher</a></span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span></code></dt><dd><p>Ends template arguments with eats-ALL and starts a name</p></dd></dl><dl><dt class="spec value" id="val-(&amp;::)"><a href="#val-(&amp;::)" class="anchor"></a><code><span class="keyword">val</span> (&amp;::) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span></code></dt><dd><p>Separates names (accepts ALL template arguments on the left one)</p></dd></dl><dl><dt class="spec value" id="val-(&amp;::+)"><a href="#val-(&amp;::+)" class="anchor"></a><code><span class="keyword">val</span> (&amp;::+) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span>(<span class="type-var">'context</span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> bool)</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span></code></dt><dd><p>Separates names that satisfies the given function (accepts ALL template arguments on the left one)</p></dd></dl><dl><dt class="spec value" id="val-(&lt;&gt;::)"><a href="#val-(&lt;&gt;::)" class="anchor"></a><code><span class="keyword">val</span> (&lt;&gt;::) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> string <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers_in</span>, <span class="type-var">'markers_out</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span></code></dt><dd><p>Separates names (accepts NO template arguments on the left one)</p></dd></dl></details></div></div></div><dl><dt class="spec type" id="type-args_matcher"><a href="#type-args_matcher" class="anchor"></a><code><span class="keyword">type</span> <span>('context, 'f_in, 'f_proc_out, 'f_out, 'captured_types, 'markers) args_matcher</span></code></dt><dt class="spec type" id="type-one_arg"><a href="#type-one_arg" class="anchor"></a><code><span class="keyword">type</span> <span>('context, 'arg_in, 'arg_out, 'f_in, 'f_out, 'captured_types, 'markers) one_arg</span></code></dt></dl><dl><dt class="spec value" id="val-any_arg"><a href="#val-any_arg" class="anchor"></a><code><span class="keyword">val</span> any_arg : <span><span>(<span class="type-var">'context</span>, unit, <span class="type-var">_</span>, <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Eats one arg</p></dd></dl><dl><dt class="spec value" id="val-capt_arg"><a href="#val-capt_arg" class="anchor"></a><code><span class="keyword">val</span> capt_arg : <span><span>(<span class="type-var">'context</span>, <a href="FuncArg/index.html#type-t">FuncArg.t</a>, <span class="type-var">'wrapped_arg</span>, <span class="type-var">'wrapped_arg</span> <span>&#45;&gt;</span> <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Captures one arg</p></dd></dl><dl><dt class="spec value" id="val-capt_exp"><a href="#val-capt_exp" class="anchor"></a><code><span class="keyword">val</span> capt_exp : <span><span>(<span class="type-var">'context</span>, <a href="../../InferIR/Exp/index.html#type-t">InferIR.Exp.t</a>, <span class="type-var">'wrapped_arg</span>, <span class="type-var">'wrapped_arg</span> <span>&#45;&gt;</span> <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Captures one arg expression</p></dd></dl><dl><dt class="spec value" id="val-any_arg_of_typ"><a href="#val-any_arg_of_typ" class="anchor"></a><code><span class="keyword">val</span> any_arg_of_typ : <span><span>(<span class="type-var">'context</span>, unit, <span class="type-var">_</span>, unit, unit, unit)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, unit, <span class="type-var">_</span>, <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Eats one arg of the given type</p></dd></dl><dl><dt class="spec value" id="val-capt_arg_of_typ"><a href="#val-capt_arg_of_typ" class="anchor"></a><code><span class="keyword">val</span> capt_arg_of_typ : <span><span>(<span class="type-var">'context</span>, unit, <span class="type-var">_</span>, unit, unit, unit)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <a href="FuncArg/index.html#type-t">FuncArg.t</a>, <span class="type-var">'wrapped_arg</span>, <span class="type-var">'wrapped_arg</span> <span>&#45;&gt;</span> <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Captures one arg of the given type</p></dd></dl><dl><dt class="spec value" id="val-capt_exp_of_typ"><a href="#val-capt_exp_of_typ" class="anchor"></a><code><span class="keyword">val</span> capt_exp_of_typ : <span><span>(<span class="type-var">'context</span>, unit, <span class="type-var">_</span>, unit, unit, unit)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <a href="../../InferIR/Exp/index.html#type-t">InferIR.Exp.t</a>, <span class="type-var">'wrapped_arg</span>, <span class="type-var">'wrapped_arg</span> <span>&#45;&gt;</span> <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Captures one arg expression of the given type</p></dd></dl><dl><dt class="spec value" id="val-any_arg_of_prim_typ"><a href="#val-any_arg_of_prim_typ" class="anchor"></a><code><span class="keyword">val</span> any_arg_of_prim_typ : <a href="../../InferIR/Typ/index.html#type-t">InferIR.Typ.t</a> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, unit, <span class="type-var">_</span>, <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Eats one arg of the given primitive type</p></dd></dl><dl><dt class="spec value" id="val-capt_exp_of_prim_typ"><a href="#val-capt_exp_of_prim_typ" class="anchor"></a><code><span class="keyword">val</span> capt_exp_of_prim_typ : <a href="../../InferIR/Typ/index.html#type-t">InferIR.Typ.t</a> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <a href="../../InferIR/Exp/index.html#type-t">InferIR.Exp.t</a>, <span class="type-var">'wrapped_arg</span>, <span class="type-var">'wrapped_arg</span> <span>&#45;&gt;</span> <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Captures one arg expression of the given primitive type</p></dd></dl><dl><dt class="spec value" id="val-capt_var_exn"><a href="#val-capt_var_exn" class="anchor"></a><code><span class="keyword">val</span> capt_var_exn : <span><span>(<span class="type-var">'context</span>, <a href="../../InferIR/Ident/index.html#type-t">InferIR.Ident.t</a>, <span class="type-var">'wrapped_arg</span>, <span class="type-var">'wrapped_arg</span> <span>&#45;&gt;</span> <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Captures one arg Var. Fails with an internal error if the expression is not a Var</p></dd></dl><dl><dt class="spec value" id="val-typ1"><a href="#val-typ1" class="anchor"></a><code><span class="keyword">val</span> typ1 : <span class="type-var">'marker</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, unit, <span class="type-var">_</span>, <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span><span class="type-var">'marker</span> <a href="../index.html#type-mtyp">mtyp</a></span> * <span class="type-var">_</span>, <span class="type-var">'marker</span> * <span class="type-var">_</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Matches first captured type</p></dd></dl><dl><dt class="spec value" id="val-typ2"><a href="#val-typ2" class="anchor"></a><code><span class="keyword">val</span> typ2 : <span class="type-var">'marker</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, unit, <span class="type-var">_</span>, <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span> * <span>(<span><span class="type-var">'marker</span> <a href="../index.html#type-mtyp">mtyp</a></span> * <span class="type-var">_</span>)</span>, <span class="type-var">_</span> * <span>(<span class="type-var">'marker</span> * <span class="type-var">_</span>)</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Matches second captured type</p></dd></dl><dl><dt class="spec value" id="val-typ3"><a href="#val-typ3" class="anchor"></a><code><span class="keyword">val</span> typ3 : <span class="type-var">'marker</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, unit, <span class="type-var">_</span>, <span class="type-var">'f</span>, <span class="type-var">'f</span>, <span class="type-var">_</span> * <span>(<span class="type-var">_</span> * <span>(<span><span class="type-var">'marker</span> <a href="../index.html#type-mtyp">mtyp</a></span> * <span class="type-var">_</span>)</span>)</span>, <span class="type-var">_</span> * <span>(<span class="type-var">_</span> * <span>(<span class="type-var">'marker</span> * <span class="type-var">_</span>)</span>)</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span></code></dt><dd><p>Matches third captured type</p></dd></dl><dl><dt class="spec value" id="val-($+)"><a href="#val-($+)" class="anchor"></a><code><span class="keyword">val</span> ($+) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_interm</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-args_matcher">args_matcher</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'arg</span>, <span class="type-var">'arg</span>, <span class="type-var">'f_interm</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-args_matcher">args_matcher</a></span></code></dt><dd><p>Separate function arguments</p></dd></dl><dl><dt class="spec value" id="val-($+?)"><a href="#val-($+?)" class="anchor"></a><code><span class="keyword">val</span> ($+?) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_interm</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-args_matcher">args_matcher</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'arg</span>, <span><span class="type-var">'arg</span> option</span>, <span class="type-var">'f_interm</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-args_matcher">args_matcher</a></span></code></dt><dd><p>Add an optional argument</p></dd></dl><dl><dt class="spec value" id="val-(&gt;$)"><a href="#val-(&gt;$)" class="anchor"></a><code><span class="keyword">val</span> (&gt;$) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'ct</span>, unit, <span class="type-var">'cm</span>, <span class="type-var">_</span>)</span> <a href="../index.html#type-templ_matcher">templ_matcher</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'arg</span>, <span class="type-var">'arg</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_out</span>, <span class="type-var">'ct</span>, <span class="type-var">'cm</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_out</span>, <span class="type-var">'ct</span>, <span class="type-var">'cm</span>)</span> <a href="index.html#type-args_matcher">args_matcher</a></span></code></dt><dd><p>Ends template arguments and starts function arguments</p></dd></dl><dl><dt class="spec value" id="val-($--&gt;)"><a href="#val-($--&gt;)" class="anchor"></a><code><span class="keyword">val</span> ($--&gt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">_</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-args_matcher">args_matcher</a></span> <span>&#45;&gt;</span> <span class="type-var">'f_in</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_out</span>)</span> <a href="index.html#type-matcher">matcher</a></span></code></dt><dd><p>Ends function arguments, binds the function</p></dd></dl><dl><dt class="spec value" id="val-($)"><a href="#val-($)" class="anchor"></a><code><span class="keyword">val</span> ($) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'captured_types</span>, unit, <span class="type-var">'markers</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'arg</span>, <span class="type-var">'arg</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-args_matcher">args_matcher</a></span></code></dt><dd><p>Ends a name with accept-ALL template arguments and starts function arguments</p></dd></dl><dl><dt class="spec value" id="val-(&lt;&gt;$)"><a href="#val-(&lt;&gt;$)" class="anchor"></a><code><span class="keyword">val</span> (&lt;&gt;$) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'captured_types</span>, unit, <span class="type-var">'markers</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'arg</span>, <span class="type-var">'arg</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-one_arg">one_arg</a></span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-args_matcher">args_matcher</a></span></code></dt><dd><p>Ends a name with accept-NO template arguments and starts function arguments</p></dd></dl><dl><dt class="spec value" id="val-(&gt;--&gt;)"><a href="#val-(&gt;--&gt;)" class="anchor"></a><code><span class="keyword">val</span> (&gt;--&gt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, unit, <span class="type-var">'markers</span>, <span class="type-var">_</span>)</span> <a href="../index.html#type-templ_matcher">templ_matcher</a></span> <span>&#45;&gt;</span> <span class="type-var">'f_in</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_out</span>)</span> <a href="index.html#type-matcher">matcher</a></span></code></dt><dd><p>Ends template arguments, accepts ALL function arguments, binds the function</p></dd></dl><dl><dt class="spec value" id="val-($+...$--&gt;)"><a href="#val-($+...$--&gt;)" class="anchor"></a><code><span class="keyword">val</span> ($+...$--&gt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">_</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-args_matcher">args_matcher</a></span> <span>&#45;&gt;</span> <span class="type-var">'f_in</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_out</span>)</span> <a href="index.html#type-matcher">matcher</a></span></code></dt><dd><p>Ends function arguments with eats-ALL and binds the function</p></dd></dl><dl><dt class="spec value" id="val-(&gt;$$--&gt;)"><a href="#val-(&gt;$$--&gt;)" class="anchor"></a><code><span class="keyword">val</span> (&gt;$$--&gt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, unit, <span class="type-var">'markers</span>, <span class="type-var">_</span>)</span> <a href="../index.html#type-templ_matcher">templ_matcher</a></span> <span>&#45;&gt;</span> <span class="type-var">'f_in</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_out</span>)</span> <a href="index.html#type-matcher">matcher</a></span></code></dt><dd><p>Ends template arguments, accepts NO function arguments, binds the function</p></dd></dl><dl><dt class="spec value" id="val-($$--&gt;)"><a href="#val-($$--&gt;)" class="anchor"></a><code><span class="keyword">val</span> ($$--&gt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, unit, <span class="type-var">'markers</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span class="type-var">'f_in</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_out</span>)</span> <a href="index.html#type-matcher">matcher</a></span></code></dt><dd><p>After a name, accepts ALL template arguments, accepts NO function arguments, binds the function</p></dd></dl><dl><dt class="spec value" id="val-(&lt;&gt;$$--&gt;)"><a href="#val-(&lt;&gt;$$--&gt;)" class="anchor"></a><code><span class="keyword">val</span> (&lt;&gt;$$--&gt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, unit, <span class="type-var">'markers</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span class="type-var">'f_in</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_out</span>)</span> <a href="index.html#type-matcher">matcher</a></span></code></dt><dd><p>After a name, accepts NO template arguments, accepts NO function arguments, binds the function</p></dd></dl><dl><dt class="spec value" id="val-(&amp;--&gt;)"><a href="#val-(&amp;--&gt;)" class="anchor"></a><code><span class="keyword">val</span> (&amp;--&gt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, unit, <span class="type-var">'markers</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span class="type-var">'f_in</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_out</span>)</span> <a href="index.html#type-matcher">matcher</a></span></code></dt><dd><p>After a name, accepts ALL template arguments, accepts ALL function arguments, binds the function</p></dd></dl><dl><dt class="spec value" id="val-(&lt;&gt;--&gt;)"><a href="#val-(&lt;&gt;--&gt;)" class="anchor"></a><code><span class="keyword">val</span> (&lt;&gt;--&gt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, unit, <span class="type-var">'markers</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span class="type-var">'f_in</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_out</span>)</span> <a href="index.html#type-matcher">matcher</a></span></code></dt><dd><p>After a name, accepts NO template arguments, accepts ALL function arguments, binds the function</p></dd></dl><dl><dt class="spec value" id="val-(&amp;::.*--&gt;)"><a href="#val-(&amp;::.*--&gt;)" class="anchor"></a><code><span class="keyword">val</span> (&amp;::.*--&gt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, unit, <span class="type-var">'markers</span>)</span> <a href="../index.html#type-name_matcher">name_matcher</a></span> <span>&#45;&gt;</span> <span class="type-var">'f_in</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_out</span>)</span> <a href="index.html#type-matcher">matcher</a></span></code></dt><dd><p>After a name, accepts ALL template arguments, accepts ALL path tails (names, templates), accepts ALL function arguments, binds the function</p></dd></dl><dl><dt class="spec value" id="val-($!--&gt;)"><a href="#val-($!--&gt;)" class="anchor"></a><code><span class="keyword">val</span> ($!--&gt;) : <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_in</span>, <span class="type-var">'f_proc_out</span>, <span class="type-var">'f_out</span>, <span class="type-var">'captured_types</span>, <span class="type-var">'markers</span>)</span> <a href="index.html#type-args_matcher">args_matcher</a></span> <span>&#45;&gt;</span> <span class="type-var">'f_in</span> <span>&#45;&gt;</span> <span><span>(<span class="type-var">'context</span>, <span class="type-var">'f_out</span>)</span> <a href="index.html#type-matcher">matcher</a></span></code></dt><dd><p>Ends function arguments, accepts NO more function arguments. If the args do not match, raise an internal error.</p></dd></dl></div></body></html>