hl/static/report/haskell2010/haskellch10.html
2014-03-15 03:18:15 +01:00

6255 lines
298 KiB
HTML

<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
<head><title>10 Syntax Reference</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- 2,html,xhtml -->
<meta name="src" content="haskell.tex" />
<meta name="date" content="2010-07-20 13:11:00" />
<link rel="stylesheet" type="text/css" href="haskell.css" />
</head><body
>
<!--l. 6--><div class="crosslinks"><p class="noindent">[<a
href="haskellch11.html" >next</a>] [<a
href="haskellch9.html" >prev</a>] [<a
href="haskellch9.html#tailhaskellch9.html" >prev-tail</a>] [<a
href="#tailhaskellch10.html">tail</a>] [<a
href="haskellpa1.html#haskellch10.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;10</span><br /><a
id="x17-17500010"></a>Syntax Reference</h2> <a
id="dx17-175001"></a>
<h3 class="sectionHead"><span class="titlemark">10.1 </span> <a
id="x17-17600010.1"></a>Notational Conventions</h3>
<p class="noindent"> These notational conventions are used for presenting syntax:
<p class="noindent">
<div class="array"> <table id="TBL-100" class="array"
cellpadding="0" cellspacing="0"
><colgroup id="TBL-100-1g"><col
id="TBL-100-1" /><col
id="TBL-100-2" /></colgroup><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">pattern</span><span
class="cmr-10">]</span> </div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> optional </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmsy-10">{</span><span
class="cmmi-10">pattern</span><span
class="cmsy-10">}</span> </div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> zero or more repetitions </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">pattern</span><span
class="cmr-10">)</span> </div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> grouping </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmmi-10">pat</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;pat</span><sub><span
class="cmr-7">2</span></sub> </div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> choice </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmmi-10">pat</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="cmmi-7">pat</span><span
class="cmsy-7">&prime;&#x27E9;</span></sub> </div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> difference&#8212;elements generated by <span
class="cmmi-10">pat</span> </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:center;"
><div class="td11"> </div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> except those generated by <span
class="cmmi-10">pat</span><span
class="cmsy-10">&prime;</span> </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="pcrr7t-">fibonacci</span> </div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> terminal syntax in typewriter font </div></td>
</tr></table> </div>
<p class="noindent"> BNF-like syntax is used throughout, with productions having the form:
<div class="flushleft"
>
<p class="noindent">
<!--tex4ht:inline--><div class="tabular"> <table id="TBL-101" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-101-1g"><col
id="TBL-101-1" /><col
id="TBL-101-2" /><col
id="TBL-101-3" /><col
id="TBL-101-4" /></colgroup><tr
style="vertical-align:baseline;" id="TBL-101-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-101-1-1"
class="td11"> <span
class="cmmi-10">nonterm </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-101-1-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-101-1-3"
class="td11"> <span
class="cmmi-10">alt</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;alt</span><sub><span
class="cmr-7">2</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;alt</span><sub><span
class="cmmi-7">n</span></sub> </td>
</tr></table>
</div></div>
<p class="noindent"> In both the lexical and the context-free syntax, there are some ambiguities that are to be resolved by making
grammatical phrases as long as possible, proceeding from left to right (in shift-reduce parsing, resolving
shift/reduce conflicts by shifting). In the lexical syntax, this is the &#8220;maximal munch&#8221; rule<a
id="dx17-176001"></a>. In the context-free
syntax, this means that conditionals, let-expressions, and lambda abstractions extend to the right as far as
possible.
<p class="noindent">
<h3 class="sectionHead"><span class="titlemark">10.2 </span> <a
id="x17-17700010.2"></a>Lexical Syntax</h3>
<div class="flushleft"
>
<p class="noindent">
<!--tex4ht:inline--><div class="tabular"> <table id="TBL-102" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-102-1g"><col
id="TBL-102-1" /><col
id="TBL-102-2" /><col
id="TBL-102-3" /><col
id="TBL-102-4" /></colgroup><tr
style="vertical-align:baseline;" id="TBL-102-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-1-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-2-1"
class="td11"> <span
class="cmmi-10">program </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-2-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-2-3"
class="td11"> <span
class="cmsy-10">{</span><span
class="cmmi-10">&#x00A0;lexeme</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;whitespace</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">} </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-3-1"
class="td11"> <span
class="cmmi-10">lexeme </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-3-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-3-3"
class="td11"> <span
class="cmmi-10">qvarid</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;qconid</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;qvarsym</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;qconsym </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-4-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-102-4-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-4-3"
class="td11"> <span
class="cmmi-10">literal</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;special</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;reservedop</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;reservedid </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-5-1"
class="td11"> <span
class="cmmi-10">literal </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-5-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-5-3"
class="td11"> <span
class="cmmi-10">integer</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;float</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;char</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;string </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-6-1"
class="td11"> <span
class="cmmi-10">special </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-6-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-6-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">[</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">`</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-7-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-102-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-8-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-9-1"
class="td11"> <span
class="cmmi-10">whitespace </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-9-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-9-3"
class="td11"> <span
class="cmmi-10">whitestuff</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">whitestuff</span><span
class="cmsy-10">} </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-10-1"
class="td11"> <span
class="cmmi-10">whitestuff </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-10-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-10-3"
class="td11"> <span
class="cmmi-10">whitechar</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;comment</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;ncomment </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-11-1"
class="td11"> <span
class="cmmi-10">whitechar </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-11-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-11-3"
class="td11"> <span
class="cmmi-10">newline</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;vertab</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;space</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;tab</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;uniWhite </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-12-1"
class="td11"> <span
class="cmmi-10">newline </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-12-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-12-3"
class="td11"> <span
class="cmmi-10">return</span><span
class="cmmi-10">&#x00A0;linefeed</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;return</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;linefeed</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;formfeed </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-13-1"
class="td11"> <span
class="cmmi-10">return </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-13-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-13-3"
class="td11"> a&#x00A0;carriage&#x00A0;return </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-14-1"
class="td11"> <span
class="cmmi-10">linefeed </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-14-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-14-3"
class="td11"> a&#x00A0;line&#x00A0;feed </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-15-1"
class="td11"> <span
class="cmmi-10">vertab </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-15-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-15-3"
class="td11"> a&#x00A0;vertical&#x00A0;tab </td></tr><tr
style="vertical-align:baseline;" id="TBL-102-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-16-1"
class="td11"> <span
class="cmmi-10">formfeed </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-16-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-16-3"
class="td11"> a&#x00A0;form&#x00A0;feed</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-17-1"
class="td11"> <span
class="cmmi-10">space </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-17-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-17-3"
class="td11"> a&#x00A0;space </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-18-1"
class="td11"> <span
class="cmmi-10">tab </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-18-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-18-3"
class="td11"> a&#x00A0;horizontal&#x00A0;tab </td></tr><tr
style="vertical-align:baseline;" id="TBL-102-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-19-1"
class="td11"> <span
class="cmmi-10">uniWhite </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-19-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-19-3"
class="td11"> any&#x00A0;Unicode&#x00A0;character&#x00A0;defined&#x00A0;as&#x00A0;whitespace</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-20-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-102-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-21-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-22-1"
class="td11"> <span
class="cmmi-10">comment </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-22-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-22-3"
class="td11"> <span
class="cmmi-10">dashes</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;any</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="cmmi-7">symbol</span><span
class="cmsy-7">&#x27E9;</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">any</span><span
class="cmsy-10">}</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;newline </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-23-1"
class="td11"> <span
class="cmmi-10">dashes </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-23-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-23-3"
class="td11"> <span
class="pcrr7t-">--</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="pcrr7t-">-</span><span
class="cmsy-10">} </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-24-1"
class="td11"> <span
class="cmmi-10">opencom </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-24-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-24-3"
class="td11"> <span
class="pcrr7t-">{-</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-25-1"
class="td11"> <span
class="cmmi-10">closecom </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-25-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-25-3"
class="td11"> <span
class="pcrr7t-">-}</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-26-1"
class="td11"> <span
class="cmmi-10">ncomment </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-26-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-26-3"
class="td11"> <span
class="cmmi-10">opencom</span><span
class="cmmi-10">&#x00A0;ANY seq</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">ncomment</span><span
class="cmmi-10">&#x00A0;ANY seq</span><span
class="cmsy-10">}</span><span
class="cmmi-10">&#x00A0;closecom </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-27-1"
class="td11"> <span
class="cmmi-10">ANY seq </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-27-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-27-3"
class="td11"> <span
class="cmsy-10">{</span><span
class="cmmi-10">ANY </span><span
class="cmsy-10">}</span><sub><span
class="cmsy-7">&#x27E8;{</span><span
class="cmmi-7">ANY </span><span
class="cmsy-7">}</span><span
class="cmmi-7">&#x00A0;</span><span
class="cmr-7">(</span><span
class="cmmi-7">&#x00A0;opencom</span><span
class="cmmi-7">&#x00A0;</span><span
class="cmsy-7">|</span><span
class="cmmi-7">&#x00A0;closecom</span><span
class="cmmi-7">&#x00A0;</span><span
class="cmr-7">)</span><span
class="cmmi-7">&#x00A0;</span><span
class="cmsy-7">{</span><span
class="cmmi-7">ANY </span><span
class="cmsy-7">}&#x27E9;</span></sub> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-28-1"
class="td11"> <span
class="cmmi-10">ANY </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-28-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-28-3"
class="td11"> <span
class="cmmi-10">graphic</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;whitechar </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-29-1"
class="td11"> <span
class="cmmi-10">any </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-29-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-29-3"
class="td11"> <span
class="cmmi-10">graphic</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;space</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;tab </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-30-1"
class="td11"> <span
class="cmmi-10">graphic </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-30-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-30-3"
class="td11"> <span
class="cmmi-10">small</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;large</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;symbol</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;digit</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;special</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">"</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">'</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-31-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-32-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-33-1"
class="td11"> <span
class="cmmi-10">small </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-33-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-33-3"
class="td11"> <span
class="cmmi-10">ascSmall</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;uniSmall</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">_</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-34-1"
class="td11"> <span
class="cmmi-10">ascSmall </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-34-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-34-3"
class="td11"> <span
class="pcrr7t-">a</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">b</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">z</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-35-1"
class="td11"> <span
class="cmmi-10">uniSmall </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-35-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-35-3"
class="td11"> any&#x00A0;Unicode&#x00A0;lowercase&#x00A0;letter </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-36-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-37-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-38-1"
class="td11"> <span
class="cmmi-10">large </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-38-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-38-3"
class="td11"> <span
class="cmmi-10">ascLarge</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;uniLarge </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-39-1"
class="td11"> <span
class="cmmi-10">ascLarge </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-39-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-39-3"
class="td11"> <span
class="pcrr7t-">A</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">B</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">Z</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-40-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-40-1"
class="td11"> <span
class="cmmi-10">uniLarge </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-40-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-40-3"
class="td11"> any&#x00A0;uppercase&#x00A0;or&#x00A0;titlecase&#x00A0;Unicode&#x00A0;letter </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-41-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-41-1"
class="td11"> <span
class="cmmi-10">symbol </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-41-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-41-3"
class="td11"> <span
class="cmmi-10">ascSymbol</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;uniSymbol</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="cmmi-7">special</span><span
class="cmmi-7">&#x00A0;</span><span
class="cmsy-7">|</span><span
class="cmmi-7">&#x00A0;</span><span
class="pcrr7t-">_</span><span
class="cmmi-7">&#x00A0;</span><span
class="cmsy-7">|</span><span
class="cmmi-7">&#x00A0;</span><span
class="pcrr7t-">"</span><span
class="cmmi-7">&#x00A0;</span><span
class="cmsy-7">|</span><span
class="cmmi-7">&#x00A0;</span><span
class="pcrr7t-">'</span><span
class="cmsy-7">&#x27E9;</span></sub> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-42-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-42-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-43-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-43-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-44-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-44-1"
class="td11"> <span
class="cmmi-10">ascSymbol </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-44-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-44-3"
class="td11"> <span
class="pcrr7t-">!</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">#</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">$</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">%</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">&amp;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">&#x22C6;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">+</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">.</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">/</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">&#x003C;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">&#x003E;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">?</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">@ </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-45-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-45-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-102-45-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-45-3"
class="td11"> <span
class="pcrr7t-">\</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">^</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">-</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">~</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">:</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-46-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-46-1"
class="td11"> <span
class="cmmi-10">uniSymbol </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-46-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-46-3"
class="td11"> any&#x00A0;Unicode&#x00A0;symbol&#x00A0;or&#x00A0;punctuation </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-47-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-47-1"
class="td11"> <span
class="cmmi-10">digit </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-47-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-47-3"
class="td11"> <span
class="cmmi-10">ascDigit</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;uniDigit </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-48-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-48-1"
class="td11"> <span
class="cmmi-10">ascDigit </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-48-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-48-3"
class="td11"> <span
class="pcrr7t-">0</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">1</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">9</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-49-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-49-1"
class="td11"> <span
class="cmmi-10">uniDigit </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-49-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-49-3"
class="td11"> any&#x00A0;Unicode&#x00A0;decimal&#x00A0;digit </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-50-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-50-1"
class="td11"> <span
class="cmmi-10">octit </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-50-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-50-3"
class="td11"> <span
class="pcrr7t-">0</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">1</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">7</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-51-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-51-1"
class="td11"> <span
class="cmmi-10">hexit </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-102-51-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-102-51-3"
class="td11"> <span
class="cmmi-10">digit</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">A</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">F</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">a</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">f</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-52-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-52-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-102-53-"><td style="white-space:nowrap; text-align:left;" id="TBL-102-53-1"
class="td11"> </td>
</tr></table></div></div>
<a
id="dx17-177001"></a>
<a
id="dx17-177002"></a>
<a
id="dx17-177003"></a>
<a
id="dx17-177004"></a>
<a
id="dx17-177005"></a>
<a
id="dx17-177006"></a>
<a
id="dx17-177007"></a>
<a
id="dx17-177008"></a>
<a
id="dx17-177009"></a>
<a
id="dx17-177010"></a>
<a
id="dx17-177011"></a>
<a
id="dx17-177012"></a>
<a
id="dx17-177013"></a>
<a
id="dx17-177014"></a>
<a
id="dx17-177015"></a>
<a
id="dx17-177016"></a>
<a
id="dx17-177017"></a>
<a
id="dx17-177018"></a>
<a
id="dx17-177019"></a>
<a
id="dx17-177020"></a>
<a
id="dx17-177021"></a>
<a
id="dx17-177022"></a>
<a
id="dx17-177023"></a>
<a
id="dx17-177024"></a>
<a
id="dx17-177025"></a>
<a
id="dx17-177026"></a>
<a
id="dx17-177027"></a>
<a
id="dx17-177028"></a>
<a
id="dx17-177029"></a>
<a
id="dx17-177030"></a>
<a
id="dx17-177031"></a>
<a
id="dx17-177032"></a>
<a
id="dx17-177033"></a>
<a
id="dx17-177034"></a>
<a
id="dx17-177035"></a>
<a
id="dx17-177036"></a>
<a
id="dx17-177037"></a>
<div class="flushleft"
>
<p class="noindent">
<!--tex4ht:inline--><div class="tabular"><table id="TBL-103" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-103-1g"><col
id="TBL-103-1" /><col
id="TBL-103-2" /><col
id="TBL-103-3" /><col
id="TBL-103-4" /></colgroup><tr
style="vertical-align:baseline;" id="TBL-103-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-1-1"
class="td11"> <span
class="cmmi-10">varid </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-1-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-1-3"
class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">small</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">small</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;large</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;digit</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">'</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">}</span><span
class="cmr-10">)</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="cmmi-7">reservedid</span><span
class="cmsy-7">&#x27E9;</span></sub> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-2-1"
class="td11"> <span
class="cmmi-10">conid </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-2-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-2-3"
class="td11"> <span
class="cmmi-10">large</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">small</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;large</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;digit</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">'</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">} </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-3-1"
class="td11"> <span
class="cmmi-10">reservedid </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-3-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-3-3"
class="td11"> <span
class="pcrr7t-">case</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">class</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">data</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">default</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">deriving</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">do</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">else</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-4-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-103-4-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-4-3"
class="td11"> <span
class="pcrr7t-">foreign</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">if</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">import</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">in</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">infix</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">infixl</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-5-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-103-5-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-5-3"
class="td11"> <span
class="pcrr7t-">infixr</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">instance</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">let</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">module</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">newtype</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">of</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-6-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-103-6-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-6-3"
class="td11"> <span
class="pcrr7t-">then</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">type</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">where</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">_</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-7-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-103-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-8-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-9-1"
class="td11"> <span
class="cmmi-10">varsym </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-9-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-9-3"
class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">symbol</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="pcrr7t-">:</span><span
class="cmsy-7">&#x27E9;</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">symbol</span><span
class="cmsy-10">}</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">)</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="cmmi-7">reservedop</span><span
class="cmmi-7">&#x00A0;</span><span
class="cmsy-7">|</span><span
class="cmmi-7">&#x00A0;dashes</span><span
class="cmsy-7">&#x27E9;</span></sub> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-10-1"
class="td11"> <span
class="cmmi-10">consym </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-10-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-10-3"
class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">:</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">symbol</span><span
class="cmsy-10">}</span><span
class="cmr-10">)</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="cmmi-7">reservedop</span><span
class="cmsy-7">&#x27E9;</span></sub> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-11-1"
class="td11"> <span
class="cmmi-10">reservedop </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-11-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-11-3"
class="td11"> <span
class="pcrr7t-">..</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">:</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">::</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">\</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">&#x003C;-</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">-&#x003E;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">@</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">~</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=&#x003E;</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-12-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-103-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-13-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-14-1"
class="td11"> <span
class="cmmi-10">varid </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-14-2"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0; </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-103-14-3"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>variables<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-15-1"
class="td11"> <span
class="cmmi-10">conid </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-15-2"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0; </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-103-15-3"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>constructors<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-16-1"
class="td11"> <span
class="cmmi-10">tyvar </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-16-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-16-3"
class="td11"> <span
class="cmmi-10">varid </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-103-16-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>type&#x00A0;variables<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-17-1"
class="td11"> <span
class="cmmi-10">tycon </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-17-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-17-3"
class="td11"> <span
class="cmmi-10">conid </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-103-17-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>type&#x00A0;constructors<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-18-1"
class="td11"> <span
class="cmmi-10">tycls </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-18-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-18-3"
class="td11"> <span
class="cmmi-10">conid </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-103-18-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>type&#x00A0;classes<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-19-1"
class="td11"> <span
class="cmmi-10">modid </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-19-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-19-3"
class="td11"> <span
class="cmsy-10">{</span><span
class="cmmi-10">conid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">.</span><span
class="cmsy-10">}</span><span
class="cmmi-10">&#x00A0;conid</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-19-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>modules<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-20-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-103-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-21-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-22-1"
class="td11"> <span
class="cmmi-10">qvarid </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-22-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-22-3"
class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;modid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">.</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;varid </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-23-1"
class="td11"> <span
class="cmmi-10">qconid </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-23-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-23-3"
class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;modid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">.</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;conid </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-24-1"
class="td11"> <span
class="cmmi-10">qtycon </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-24-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-24-3"
class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;modid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">.</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;tycon </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-25-1"
class="td11"> <span
class="cmmi-10">qtycls </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-25-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-25-3"
class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;modid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">.</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;tycls </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-26-1"
class="td11"> <span
class="cmmi-10">qvarsym </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-26-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-26-3"
class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;modid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">.</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;varsym </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-27-1"
class="td11"> <span
class="cmmi-10">qconsym </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-27-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-27-3"
class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;modid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">.</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;consym </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-28-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-29-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-30-1"
class="td11"> <span
class="cmmi-10">decimal </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-30-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-30-3"
class="td11"> <span
class="cmmi-10">digit</span><span
class="cmsy-10">{</span><span
class="cmmi-10">digit</span><span
class="cmsy-10">} </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-31-1"
class="td11"> <span
class="cmmi-10">octal </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-31-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-31-3"
class="td11"> <span
class="cmmi-10">octit</span><span
class="cmsy-10">{</span><span
class="cmmi-10">octit</span><span
class="cmsy-10">} </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-32-1"
class="td11"> <span
class="cmmi-10">hexadecimal </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-32-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-32-3"
class="td11"> <span
class="cmmi-10">hexit</span><span
class="cmsy-10">{</span><span
class="cmmi-10">hexit</span><span
class="cmsy-10">} </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-33-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-34-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-35-1"
class="td11"> <span
class="cmmi-10">integer </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-35-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-35-3"
class="td11"> <span
class="cmmi-10">decimal </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-36-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-103-36-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-36-3"
class="td11"> <span
class="pcrr7t-">0o</span><span
class="cmmi-10">&#x00A0;octal</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">0O</span><span
class="cmmi-10">&#x00A0;octal </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-37-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-103-37-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-37-3"
class="td11"> <span
class="pcrr7t-">0x</span><span
class="cmmi-10">&#x00A0;hexadecimal</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">0X</span><span
class="cmmi-10">&#x00A0;hexadecimal </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-38-1"
class="td11"> <span
class="cmmi-10">float </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-38-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-38-3"
class="td11"> <span
class="cmmi-10">decimal</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">.</span><span
class="cmmi-10">&#x00A0;decimal</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">exponent</span><span
class="cmr-10">] </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-39-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-103-39-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-39-3"
class="td11"> <span
class="cmmi-10">decimal</span><span
class="cmmi-10">&#x00A0;exponent </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-40-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-40-1"
class="td11"> <span
class="cmmi-10">exponent </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-40-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-40-3"
class="td11"> <span
class="cmr-10">(</span><span
class="pcrr7t-">e</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">E</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">+</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">-</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;decimal </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-41-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-41-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-42-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-42-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-43-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-43-1"
class="td11"> <span
class="cmmi-10">char </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-43-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-43-3"
class="td11"> <span
class="pcrr7t-">'</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">graphic</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="pcrr7t-">'</span><span
class="cmmi-7">&#x00A0;</span><span
class="cmsy-7">|</span><span
class="cmmi-7">&#x00A0;</span><span
class="pcrr7t-">\</span><span
class="cmsy-7">&#x27E9;</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;space</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;escape</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="pcrr7t-">\&amp;</span><span
class="cmsy-7">&#x27E9;</span></sub><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">'</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-44-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-44-1"
class="td11"> <span
class="cmmi-10">string </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-44-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-44-3"
class="td11"> <span
class="pcrr7t-">"</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">graphic</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="pcrr7t-">"</span><span
class="cmmi-7">&#x00A0;</span><span
class="cmsy-7">|</span><span
class="cmmi-7">&#x00A0;</span><span
class="pcrr7t-">\</span><span
class="cmsy-7">&#x27E9;</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;space</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;escape</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;gap</span><span
class="cmsy-10">}</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">"</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-45-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-45-1"
class="td11"> <span
class="cmmi-10">escape </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-45-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-45-3"
class="td11"> <span
class="pcrr7t-">\</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">&#x00A0;charesc</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;ascii</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;decimal</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">o</span><span
class="cmmi-10">&#x00A0;octal</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">x</span><span
class="cmmi-10">&#x00A0;hexadecimal</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-46-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-46-1"
class="td11"> <span
class="cmmi-10">charesc </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-46-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-46-3"
class="td11"> <span
class="pcrr7t-">a</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">b</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">f</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">n</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">r</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">t</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">v</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">\</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">"</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">'</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">&amp;</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-47-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-47-1"
class="td11"> <span
class="cmmi-10">ascii </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-47-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-47-3"
class="td11"> <span
class="pcrr7t-">^</span><span
class="cmmi-10">cntrl</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">NUL</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">SOH</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">STX</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">ETX</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">EOT</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">ENQ</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">ACK</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-48-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-48-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-103-48-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-48-3"
class="td11"> <span
class="pcrr7t-">BEL</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">BS</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">HT</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">LF</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">VT</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">FF</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">CR</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">SO</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">SI</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">DLE</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-49-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-49-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-103-49-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-49-3"
class="td11"> <span
class="pcrr7t-">DC1</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">DC2</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">DC3</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">DC4</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">NAK</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">SYN</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">ETB</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">CAN</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-50-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-50-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-103-50-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-50-3"
class="td11"> <span
class="pcrr7t-">EM</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">SUB</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">ESC</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">FS</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">GS</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">RS</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">US</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">SP</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">DEL</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-51-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-51-1"
class="td11"> <span
class="cmmi-10">cntrl </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-51-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-51-3"
class="td11"> <span
class="cmmi-10">ascLarge</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">@</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">[</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">\</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">^</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">_</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-103-52-"><td style="white-space:nowrap; text-align:left;" id="TBL-103-52-1"
class="td11"> <span
class="cmmi-10">gap </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-103-52-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-103-52-3"
class="td11"> <span
class="pcrr7t-">\</span><span
class="cmmi-10">&#x00A0;whitechar</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">whitechar</span><span
class="cmsy-10">}</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">\</span> </td>
</tr></table></div></div>
<a
id="dx17-177038"></a>
<a
id="dx17-177039"></a>
<a
id="dx17-177040"></a>
<a
id="dx17-177041"></a>
<a
id="dx17-177042"></a>
<a
id="dx17-177043"></a>
<a
id="dx17-177044"></a>
<a
id="dx17-177045"></a>
<a
id="dx17-177046"></a>
<a
id="dx17-177047"></a>
<a
id="dx17-177048"></a>
<a
id="dx17-177049"></a>
<a
id="dx17-177050"></a>
<a
id="dx17-177051"></a>
<a
id="dx17-177052"></a>
<a
id="dx17-177053"></a>
<a
id="dx17-177054"></a>
<a
id="dx17-177055"></a>
<a
id="dx17-177056"></a>
<a
id="dx17-177057"></a>
<a
id="dx17-177058"></a>
<a
id="dx17-177059"></a>
<a
id="dx17-177060"></a>
<a
id="dx17-177061"></a>
<a
id="dx17-177062"></a>
<a
id="dx17-177063"></a>
<a
id="dx17-177064"></a>
<p class="noindent">
<h3 class="sectionHead"><span class="titlemark">10.3 </span> <a
id="x17-17800010.3"></a>Layout</h3>
<a
id="dx17-178001"></a>
<p class="noindent"> Section&#x00A0;<a
href="haskellch2.html#x7-210002.7">2.7<!--tex4ht:ref: lexemes-layout --></a> gives an informal discussion of the layout rule. This section defines it more precisely.
<p class="noindent"> The meaning of a Haskell program may depend on its <span
class="ptmri7t-">layout</span>. The effect of layout on its meaning can be completely
described by adding braces and semicolons in places determined by the layout. The meaning of this augmented
program is now layout insensitive.
<p class="noindent"> The effect of layout is specified in this section by describing how to add braces and semicolons to a laid-out
program. The specification takes the form of a function <span
class="cmmi-10">L</span> that performs the translation. The input to <span
class="cmmi-10">L</span>
is:
<ul class="itemize1">
<li class="itemize">A stream of lexemes as specified by the lexical syntax in the Haskell report, with the following additional
tokens:
<ul class="itemize2">
<li class="itemize">If a <span
class="pcrr7t-">let</span>, <span
class="pcrr7t-">where</span>, <span
class="pcrr7t-">do</span>, or <span
class="pcrr7t-">of</span> keyword is not followed by the lexeme <span
class="pcrr7t-">{</span>, the token <span
class="cmsy-10">{</span><span
class="cmmi-10">n</span><span
class="cmsy-10">}</span> is inserted
after the keyword, where <span
class="cmmi-10">n</span> is the indentation of the next lexeme if there is one, or <span
class="cmr-10">0</span> if the end of
file has been reached.
</li>
<li class="itemize">If the first lexeme of a module is not <span
class="pcrr7t-">{</span> or <span
class="pcrr7t-">module</span>, then it is preceded by <span
class="cmsy-10">{</span><span
class="cmmi-10">n</span><span
class="cmsy-10">}</span> where <span
class="cmmi-10">n</span> is the
indentation of the lexeme.
</li>
<li class="itemize">Where the start of a lexeme is preceded only by white space on the same line, this lexeme is preceded by
<span
class="cmmi-10">&#x003C; n &#x003E;</span> where <span
class="cmmi-10">n</span> is the indentation of the lexeme, provided that it is not, as a consequence of the first two
rules, preceded by <span
class="cmsy-10">{</span><span
class="cmmi-10">n</span><span
class="cmsy-10">}</span>. (NB: a string literal may span multiple lines &#8211; Section&#x00A0;<a
href="haskellch2.html#x7-200002.6">2.6<!--tex4ht:ref: lexemes-char --></a>. So in the fragment
<div class="quote">
<div class="verbatim" id="verbatim-342">
&#x00A0;&#x00A0;f&#x00A0;=&#x00A0;("Hello&#x00A0;\
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;\Bill",&#x00A0;"Jake")
</div>
<p class="noindent"></div>
<p class="noindent"> There is no <span
class="cmmi-10">&#x003C; n &#x003E;</span> inserted before the <span
class="pcrr7t-">\Bill</span>, because it is not the beginning of a complete lexeme; nor
before the <span
class="pcrr7t-">,</span>, because it is not preceded only by white space.)</li></ul>
</li>
<li class="itemize">A stack of &#8220;layout contexts&#8221;, in which each element is either:
<ul class="itemize2">
<li class="itemize">Zero, indicating that the enclosing context is explicit (i.e. the programmer supplied the opening
brace). If the innermost context is 0, then no layout tokens will be inserted until either the
enclosing context ends or a new context is pushed.
</li>
<li class="itemize">A positive integer, which is the indentation column of the enclosing layout context.</li></ul>
</li></ul>
<p class="noindent"> The &#8220;indentation&#8221; of a lexeme is the column number of the first character of that lexeme; the indentation of a line is
the indentation of its leftmost lexeme. To determine the column number, assume a fixed-width font with the following
conventions:
<ul class="itemize1">
<li class="itemize">The characters <span
class="cmmi-10">newline</span>, <span
class="cmmi-10">return</span>, <span
class="cmmi-10">linefeed</span>, and <span
class="cmmi-10">formfeed</span>, all start a new line.
</li>
<li class="itemize">The first column is designated column 1, not 0.
</li>
<li class="itemize">Tab stops are 8 characters apart.
</li>
<li class="itemize">A tab character causes the insertion of enough spaces to align the current position with the next tab
stop.</li></ul>
<p class="noindent"> For the purposes of the layout rule, Unicode characters in a source program are considered to be of the
same, fixed, width as an ASCII character. However, to avoid visual confusion, programmers should
avoid writing programs in which the meaning of implicit layout depends on the width of non-space
characters.
<p class="noindent"> The application
<span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;tokens</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[]</span>
delivers a layout-insensitive translation of <span
class="cmmi-10">tokens</span>, where <span
class="cmmi-10">tokens</span> is the result of lexically analysing a module and
adding column-number indicators to it as described above. The definition of <span
class="cmmi-10">L</span> is as follows, where we use &#8220;<span
class="cmr-10">:</span>&#8221; as a
stream construction operator, and &#8220;<span
class="cmr-10">[]</span>&#8221; for the empty stream.
<div class="center"
>
<p class="noindent">
<p class="noindent">
<div class="array"> <table id="TBL-104" class="array"
cellpadding="0" cellspacing="0"
><colgroup id="TBL-104-1g"><col
id="TBL-104-1" /><col
id="TBL-104-2" /><col
id="TBL-104-3" /><col
id="TBL-104-4" /></colgroup><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">&#x003C; n &#x003E;</span><span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">m </span><span
class="cmr-10">: </span><span
class="cmmi-10">ms</span><span
class="cmr-10">) </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;ts</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">m </span><span
class="cmr-10">: </span><span
class="cmmi-10">ms</span><span
class="cmr-10">)) </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> if<span
class="cmmi-10">&#x00A0;m </span><span
class="cmr-10">= </span><span
class="cmmi-10">n </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> </div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="pcrr7t-">}</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">&#x003C; n &#x003E;</span><span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;ms</span><span
class="cmr-10">) </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> if<span
class="cmmi-10">&#x00A0;n &#x003C; m </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">&#x003C; n &#x003E;</span><span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;ms </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;ts</span><span
class="cmmi-10">&#x00A0;ms </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmsy-10">{</span><span
class="cmmi-10">n</span><span
class="cmsy-10">} </span><span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">m </span><span
class="cmr-10">: </span><span
class="cmmi-10">ms</span><span
class="cmr-10">) </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;ts</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmr-10">: </span><span
class="cmmi-10">m </span><span
class="cmr-10">: </span><span
class="cmmi-10">ms</span><span
class="cmr-10">)) </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> if<span
class="cmmi-10">&#x00A0;n &#x003E; m</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">Note</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">1) </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmsy-10">{</span><span
class="cmmi-10">n</span><span
class="cmsy-10">} </span><span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[] </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;ts</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">n</span><span
class="cmr-10">]) </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> if<span
class="cmmi-10">&#x00A0;n &#x003E; </span><span
class="cmr-10">0</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">Note</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">1) </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmsy-10">{</span><span
class="cmmi-10">n</span><span
class="cmsy-10">} </span><span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;ms </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">&#x003C; n &#x003E;</span><span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;ms</span><span
class="cmr-10">) </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">Note</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">2) </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="pcrr7t-">}</span> <span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(0 : </span><span
class="cmmi-10">ms</span><span
class="cmr-10">) </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="pcrr7t-">}</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;ts</span><span
class="cmmi-10">&#x00A0;ms</span><span
class="cmr-10">) </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">Note</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">3) </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="pcrr7t-">}</span> <span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;ms </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> parse-error </div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">Note</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">3) </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="pcrr7t-">{</span> <span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;ms </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;ts</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(0 : </span><span
class="cmmi-10">ms</span><span
class="cmr-10">)) </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">Note</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">4) </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">t </span><span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">m </span><span
class="cmr-10">: </span><span
class="cmmi-10">ms</span><span
class="cmr-10">) </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="pcrr7t-">}</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">t </span><span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;ms</span><span
class="cmr-10">) </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> if<span
class="cmmi-10">&#x00A0;m&#x2215; </span><span
class="cmr-10">= 0</span><span
class="cmmi-10">&#x00A0;</span>and<span
class="cmmi-10">&#x00A0;</span>parse-error<span
class="cmr-10">(</span><span
class="cmmi-10">t</span><span
class="cmr-10">) </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> </div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> </div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> </div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">Note</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">5) </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">t </span><span
class="cmr-10">: </span><span
class="cmmi-10">ts</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;ms </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">t</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;ts</span><span
class="cmmi-10">&#x00A0;ms</span><span
class="cmr-10">) </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> </div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[]</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[] </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmr-10">[] </span></div></td>
</tr><tr
style="vertical-align:baseline;"><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="cmmi-10">L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[]</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">m </span><span
class="cmr-10">: </span><span
class="cmmi-10">ms</span><span
class="cmr-10">) </span></div></td><td style="white-space:nowrap; text-align:center;"
><div class="td11"> <span
class="cmr-10">= </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> <span
class="pcrr7t-">}</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">:</span> <span
class="cmmi-10">&#x00A0;L</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[]</span><span
class="cmmi-10">&#x00A0;ms </span></div></td><td style="white-space:nowrap; text-align:left;"
><div class="td11"> if<span
class="cmmi-10">&#x00A0;m</span><span
class="cmmi-10">&ne;</span><span
class="cmr-10">0</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">Note</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">6) </span></div></td>
</tr></table> </div>
</div>
<dl class="description"><dt class="description">
<span
class="ptmb7t-">Note 1.</span> </dt><dd
class="description">A nested context must be further indented than the enclosing context (<span
class="cmmi-10">n &#x003E; m</span>). If not, <span
class="cmmi-10">L</span> fails, and the
compiler should indicate a layout error. An example is:
<div class="quote">
<div class="verbatim" id="verbatim-343">
&#x00A0;&#x00A0;f&#x00A0;x&#x00A0;=&#x00A0;let
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;h&#x00A0;y&#x00A0;=&#x00A0;let
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;p&#x00A0;z&#x00A0;=&#x00A0;z
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;in&#x00A0;p
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;in&#x00A0;h
</div>
<p class="noindent"></div>
<p class="noindent"> Here, the definition of <span
class="pcrr7t-">p</span> is indented less than the indentation of the enclosing context, which is set in this case
by the definition of <span
class="pcrr7t-">h</span>.
</dd><dt class="description">
<span
class="ptmb7t-">Note 2.</span> </dt><dd
class="description">If the first token after a <span
class="pcrr7t-">where</span> (say) is not indented more than the enclosing layout context, then the block
must be empty, so empty braces are inserted. The <span
class="cmsy-10">{</span><span
class="cmmi-10">n</span><span
class="cmsy-10">} </span>token is replaced by <span
class="cmmi-10">&#x003C; n &#x003E;</span>, to mimic the situation if the
empty braces had been explicit.
</dd><dt class="description">
<span
class="ptmb7t-">Note 3.</span> </dt><dd
class="description">By matching against 0 for the current layout context, we ensure that an explicit close brace can only match
an explicit open brace. A parse error results if an explicit close brace matches an implicit open
brace.
</dd><dt class="description">
<span
class="ptmb7t-">Note 4.</span> </dt><dd
class="description">This clause means that all brace pairs are treated as explicit layout contexts, including labelled
construction and update (Section&#x00A0;<a
href="haskellch3.html#x8-490003.15">3.15<!--tex4ht:ref: field-ops --></a>). This is a difference between this formulation and Haskell
1.4.
</dd><dt class="description">
<span
class="ptmb7t-">Note 5.</span> </dt><dd
class="description">The side condition parse-error<span
class="cmr-10">(</span><span
class="cmmi-10">t</span><span
class="cmr-10">)</span> is to be interpreted as follows: if the tokens generated so far by <span
class="cmmi-10">L</span> together
with the next token <span
class="cmmi-10">t</span> represent an invalid prefix of the Haskell grammar, and the tokens generated so far by <span
class="cmmi-10">L</span>
followed by the token &#8220;<span
class="pcrr7t-">}</span>&#8221; represent a valid prefix of the Haskell grammar, then parse-error<span
class="cmr-10">(</span><span
class="cmmi-10">t</span><span
class="cmr-10">)</span> is
true.
<p class="noindent"> The test <span
class="cmmi-10">m&#x2215; </span><span
class="cmr-10">= 0 </span>checks that an implicitly-added closing brace would match an implicit open
brace.
</dd><dt class="description">
<span
class="ptmb7t-">Note 6.</span> </dt><dd
class="description">At the end of the input, any pending close-braces are inserted. It is an error at this point to be within a
non-layout context (i.e.&#x00A0; <span
class="cmmi-10">m</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">=</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">0</span>).</dd></dl>
<p class="noindent"> If none of the rules given above matches, then the algorithm fails. It can fail for instance when the end of the input is
reached, and a non-layout context is active, since the close brace is missing. Some error conditions are not detected by
the algorithm, although they could be: for example <span
class="pcrr7t-">let</span><span
class="pcrr7t-">&#x00A0;}</span>.
<p class="noindent"> Note 1 implements the feature that layout processing can be stopped prematurely by a parse error. For example
<div class="quote">
<div class="verbatim" id="verbatim-344">
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;let&#x00A0;x&#x00A0;=&#x00A0;e;&#x00A0;y&#x00A0;=&#x00A0;x&#x00A0;in&#x00A0;e'
</div>
<p class="noindent"></div>
<p class="noindent"> is valid, because it translates to
<div class="quote">
<div class="verbatim" id="verbatim-345">
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;let&#x00A0;{&#x00A0;x&#x00A0;=&#x00A0;e;&#x00A0;y&#x00A0;=&#x00A0;x&#x00A0;}&#x00A0;in&#x00A0;e'
</div>
<p class="noindent"></div>
<p class="noindent"> The close brace is inserted due to the parse error rule above.
<h3 class="sectionHead"><span class="titlemark">10.4 </span> <a
id="x17-17900010.4"></a>Literate comments</h3>
<a
id="dx17-179001"></a>
<p class="noindent"> The &#8220;literate comment&#8221; convention, first developed by Richard Bird and Philip Wadler for Orwell, and inspired in
turn by Donald Knuth&#8217;s &#8220;literate programming&#8221;, is an alternative style for encoding Haskell source code. The literate
style encourages comments by making them the default. A line in which &#8220;<span
class="pcrr7t-">&#x003E;</span>&#8221; is the first character is treated as part of
the program; all other lines are comments.
<p class="noindent"> The program text is recovered by taking only those lines beginning with &#8220;<span
class="pcrr7t-">&#x003E;</span>&#8221;, and replacing the leading &#8220;<span
class="pcrr7t-">&#x003E;</span>&#8221; with a
space. Layout and comments apply exactly as described in Chapter&#x00A0;<a
href="#x17-17500010">10<!--tex4ht:ref: syntax --></a> in the resulting text.
<p class="noindent"> To capture some cases where one omits an &#8220;<span
class="pcrr7t-">&#x003E;</span>&#8221; by mistake, it is an error for a program line to appear adjacent to a
non-blank comment line, where a line is taken as blank if it consists only of whitespace.
<p class="noindent"> By convention, the style of comment is indicated by the file extension, with &#8220;<span
class="pcrr7t-">.hs</span>&#8221; indicating a usual Haskell file
and &#8220;<span
class="pcrr7t-">.lhs</span>&#8221; indicating a literate Haskell file. Using this style, a simple factorial program would be:
<div class="quote">
<div class="verbatim" id="verbatim-346">
&#x00A0;&#x00A0;&#x00A0;This&#x00A0;literate&#x00A0;program&#x00A0;prompts&#x00A0;the&#x00A0;user&#x00A0;for&#x00A0;a&#x00A0;number
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;and&#x00A0;prints&#x00A0;the&#x00A0;factorial&#x00A0;of&#x00A0;that&#x00A0;number:
&#x00A0;<br />
&#x00A0;<br />&#x003E;&#x00A0;main&#x00A0;::&#x00A0;IO&#x00A0;()
&#x00A0;<br />
&#x00A0;<br />&#x003E;&#x00A0;main&#x00A0;=&#x00A0;do&#x00A0;putStr&#x00A0;"Enter&#x00A0;a&#x00A0;number:&#x00A0;"
&#x00A0;<br />&#x003E;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;l&#x00A0;&#x003C;-&#x00A0;readLine
&#x00A0;<br />&#x003E;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;putStr&#x00A0;"n!=&#x00A0;"
&#x00A0;<br />&#x003E;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;print&#x00A0;(fact&#x00A0;(read&#x00A0;l))
&#x00A0;<br />
&#x00A0;<br />&#x00A0;&#x00A0;This&#x00A0;is&#x00A0;the&#x00A0;factorial&#x00A0;function.
&#x00A0;<br />
&#x00A0;<br />&#x003E;&#x00A0;fact&#x00A0;::&#x00A0;Integer&#x00A0;-&#x003E;&#x00A0;Integer
&#x00A0;<br />&#x003E;&#x00A0;fact&#x00A0;0&#x00A0;=&#x00A0;1
&#x00A0;<br />&#x003E;&#x00A0;fact&#x00A0;n&#x00A0;=&#x00A0;n&#x00A0;&#x22C6;&#x00A0;fact&#x00A0;(n-1)
</div>
<p class="noindent"></div>
<p class="noindent"> An alternative style of literate programming is particularly suitable for use with the LaTeX text processing
system. In this convention, only those parts of the literate program that are entirely enclosed between
<span
class="pcrr7t-">\begin{code}</span><span
class="cmmi-10">&hellip;</span><span
class="pcrr7t-">\end{code}</span> delimiters are treated as program text; all other lines are comments. More
precisely:
<ul class="itemize1">
<li class="itemize">Program code begins on the first line following a line that begins <span
class="pcrr7t-">\begin{code}</span>.
</li>
<li class="itemize">Program code ends just before a subsequent line that begins <span
class="pcrr7t-">\end{code}</span> (ignoring string literals, of
course).</li></ul>
<p class="noindent"> It is not necessary to insert additional blank lines before or after these delimiters, though it may be stylistically
desirable. For example,
<div class="quote">
<div class="verbatim" id="verbatim-347">
\documentstyle{article}
&#x00A0;<br />
&#x00A0;<br />\begin{document}
&#x00A0;<br />
&#x00A0;<br />\chapter{Introduction}
&#x00A0;<br />
&#x00A0;<br />This&#x00A0;is&#x00A0;a&#x00A0;trivial&#x00A0;program&#x00A0;that&#x00A0;prints&#x00A0;the&#x00A0;first&#x00A0;20&#x00A0;factorials.
&#x00A0;<br />
&#x00A0;<br />\begin{code}
&#x00A0;<br />main&#x00A0;::&#x00A0;IO&#x00A0;()
&#x00A0;<br />main&#x00A0;=&#x00A0;&#x00A0;print&#x00A0;[&#x00A0;(n,&#x00A0;product&#x00A0;[1..n])&#x00A0;|&#x00A0;n&#x00A0;&#x003C;-&#x00A0;[1..20]]
&#x00A0;<br />\end{code}
&#x00A0;<br />
&#x00A0;<br />\end{document}
</div>
<p class="noindent"></div>
<p class="noindent"> This style uses the same file extension. It is not advisable to mix these two styles in the same file.
<h3 class="sectionHead"><span class="titlemark">10.5 </span> <a
id="x17-18000010.5"></a>Context-Free Syntax</h3>
<div class="flushleft"
>
<p class="noindent">
<!--tex4ht:inline--><div class="tabular"> <table id="TBL-105" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-105-1g"><col
id="TBL-105-1" /><col
id="TBL-105-2" /><col
id="TBL-105-3" /><col
id="TBL-105-4" /></colgroup><tr
style="vertical-align:baseline;" id="TBL-105-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-1-1"
class="td11"> <span
class="cmmi-10">module </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-1-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-1-3"
class="td11"> <span
class="pcrr7t-">module</span><span
class="cmmi-10">&#x00A0;modid</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">exports</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">where</span><span
class="cmmi-10">&#x00A0;body</span><span
class="cmmi-10">&#x00A0;</span><a
id="dx17-180001"></a> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-2-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-2-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-2-3"
class="td11"> <span
class="cmmi-10">body</span><a
id="dx17-180002"></a> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-3-1"
class="td11"> <span
class="cmmi-10">body </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-3-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-3-3"
class="td11"> <span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;impdecls</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;topdecls</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span><a
id="dx17-180003"></a> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-4-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-4-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-4-3"
class="td11"> <span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;impdecls</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-5-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-5-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-5-3"
class="td11"> <span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;topdecls</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-6-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-7-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-8-1"
class="td11"> <span
class="cmmi-10">impdecls </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-8-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-8-3"
class="td11"> <span
class="cmmi-10">impdecl</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;impdecl</span><sub><span
class="cmmi-7">n</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-8-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1)</span><a
id="dx17-180004"></a> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-9-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-10-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-11-1"
class="td11"> <a
id="dx17-180005"></a><span
class="cmmi-10">exports </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-11-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-11-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;export</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;export</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-11-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-12-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-13-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-14-1"
class="td11"> <a
id="dx17-180006"></a><span
class="cmmi-10">export </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-14-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-14-3"
class="td11"> <span
class="cmmi-10">qvar </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-15-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-15-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-15-3"
class="td11"> <span
class="cmmi-10">qtycon</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">(..)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;cname</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;cname</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span><span
class="cmr-10">] </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-15-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-16-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-16-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-16-3"
class="td11"> <span
class="cmmi-10">qtycls</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">(..)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;qvar</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;qvar</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span><span
class="cmr-10">] </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-16-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-17-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-17-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-17-3"
class="td11"> <span
class="pcrr7t-">module</span><span
class="cmmi-10">&#x00A0;modid </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-18-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-19-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-20-1"
class="td11"> <a
id="dx17-180007"></a><span
class="cmmi-10">impdecl </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-20-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-20-3"
class="td11"> <span
class="pcrr7t-">import</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">qualified</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;modid</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">as</span><span
class="cmmi-10">&#x00A0;modid</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">impspec</span><span
class="cmr-10">] </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-21-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-21-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-21-3"
class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-21-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>empty&#x00A0;declaration<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-22-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-23-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-24-1"
class="td11"> <a
id="dx17-180008"></a><span
class="cmmi-10">impspec </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-24-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-24-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;import</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;import</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-24-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-25-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-25-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-25-3"
class="td11"> <span
class="pcrr7t-">hiding</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;import</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;import</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-25-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-26-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-27-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-28-1"
class="td11"> <a
id="dx17-180009"></a><span
class="cmmi-10">import </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-28-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-28-3"
class="td11"> <span
class="cmmi-10">var </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-29-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-29-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-29-3"
class="td11"> <span
class="cmmi-10">tycon</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(..)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;cname</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;cname</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span><span
class="cmr-10">] </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-29-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-30-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-30-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-30-3"
class="td11"> <span
class="cmmi-10">tycls</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">(..)</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;var</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;var</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span><span
class="cmr-10">] </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-30-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-31-1"
class="td11"> <a
id="dx17-180010"></a><span
class="cmmi-10">cname </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-31-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-31-3"
class="td11"> <span
class="cmmi-10">var</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;con </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-32-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-33-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-34-1"
class="td11"> <a
id="dx17-180011"></a><span
class="cmmi-10">topdecls </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-34-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-34-3"
class="td11"> <span
class="cmmi-10">topdecl</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;topdecl</span><sub><span
class="cmmi-7">n</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-34-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-35-1"
class="td11"> <a
id="dx17-180012"></a><span
class="cmmi-10">topdecl </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-35-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-35-3"
class="td11"> <span
class="pcrr7t-">type</span><span
class="cmmi-10">&#x00A0;simpletype</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=</span><span
class="cmmi-10">&#x00A0;type </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-36-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-36-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-36-3"
class="td11"> <span
class="pcrr7t-">data</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">context</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=&#x003E;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;simpletype</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">=</span><span
class="cmmi-10">&#x00A0;constrs</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">deriving</span><span
class="cmr-10">]</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-37-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-37-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-37-3"
class="td11"> <span
class="pcrr7t-">newtype</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">context</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=&#x003E;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;simpletype</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=</span><span
class="cmmi-10">&#x00A0;newconstr</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">deriving</span><span
class="cmr-10">] </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-38-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-38-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-38-3"
class="td11"> <span
class="pcrr7t-">class</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">scontext</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=&#x003E;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;tycls</span><span
class="cmmi-10">&#x00A0;tyvar</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">where</span><span
class="cmmi-10">&#x00A0;cdecls</span><span
class="cmr-10">] </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-39-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-39-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-39-3"
class="td11"> <span
class="pcrr7t-">instance</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">scontext</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=&#x003E;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;qtycls</span><span
class="cmmi-10">&#x00A0;inst</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">where</span><span
class="cmmi-10">&#x00A0;idecls</span><span
class="cmr-10">] </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-40-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-40-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-40-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-40-3"
class="td11"> <span
class="pcrr7t-">default</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">type</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;type</span><sub><span
class="cmmi-7">n</span></sub><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-40-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-41-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-41-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-41-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-41-3"
class="td11"> <span
class="pcrr7t-">foreign</span><span
class="cmmi-10">&#x00A0;fdecl </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-42-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-42-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-42-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-42-3"
class="td11"> <span
class="cmmi-10">decl </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-43-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-43-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-44-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-44-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-45-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-45-1"
class="td11"> <a
id="dx17-180013"></a><span
class="cmmi-10">decls </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-45-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-45-3"
class="td11"> <span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;decl</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;decl</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-45-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-46-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-46-1"
class="td11"> <a
id="dx17-180014"></a><span
class="cmmi-10">decl </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-46-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-46-3"
class="td11"> <span
class="cmmi-10">gendecl </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-47-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-47-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-47-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-47-3"
class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">funlhs</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">pat</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;rhs</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-48-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-48-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-49-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-49-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-50-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-50-1"
class="td11"> <a
id="dx17-180015"></a><span
class="cmmi-10">cdecls </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-50-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-50-3"
class="td11"> <span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;cdecl</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;cdecl</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-50-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-51-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-51-1"
class="td11"> <a
id="dx17-180016"></a><span
class="cmmi-10">cdecl </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-51-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-51-3"
class="td11"> <span
class="cmmi-10">gendecl </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-52-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-52-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-52-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-52-3"
class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">funlhs</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;var</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;rhs </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-53-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-53-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-54-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-54-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-55-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-55-1"
class="td11"> <a
id="dx17-180017"></a><span
class="cmmi-10">idecls </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-55-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-55-3"
class="td11"> <span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;idecl</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;idecl</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-55-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-56-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-56-1"
class="td11"> <a
id="dx17-180018"></a><span
class="cmmi-10">idecl </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-56-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-56-3"
class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">funlhs</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;var</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;rhs </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-57-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-57-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-57-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-57-3"
class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-57-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>empty<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-58-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-58-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-59-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-59-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-60-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-60-1"
class="td11"> <a
id="dx17-180019"></a><span
class="cmmi-10">gendecl </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-60-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-60-3"
class="td11"> <span
class="cmmi-10">vars</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">::</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">context</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=&#x003E;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;type </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-60-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>type&#x00A0;signature<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-61-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-61-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-61-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-61-3"
class="td11"> <span
class="cmmi-10">fixity</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">integer</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;ops </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-61-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>fixity&#x00A0;declaration<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-62-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-62-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-62-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-62-3"
class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-62-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>empty&#x00A0;declaration<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-63-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-63-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-64-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-64-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-65-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-65-1"
class="td11"> <a
id="dx17-180020"></a><span
class="cmmi-10">ops </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-65-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-65-3"
class="td11"> <span
class="cmmi-10">op</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;op</span><sub><span
class="cmmi-7">n</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-65-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-66-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-66-1"
class="td11"> <a
id="dx17-180021"></a><span
class="cmmi-10">vars </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-66-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-66-3"
class="td11"> <span
class="cmmi-10">var</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;var</span><sub><span
class="cmmi-7">n</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-66-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-67-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-67-1"
class="td11"> <a
id="dx17-180022"></a><span
class="cmmi-10">fixity </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-67-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-67-3"
class="td11"> <span
class="pcrr7t-">infixl</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">infixr</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">infix</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-68-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-68-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-69-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-69-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-70-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-70-1"
class="td11"> <a
id="dx17-180023"></a><span
class="cmmi-10">type </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-70-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-70-3"
class="td11"> <span
class="cmmi-10">btype</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">-&#x003E;</span><span
class="cmmi-10">&#x00A0;type</span><span
class="cmr-10">] </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-70-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>function&#x00A0;type<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-71-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-71-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-72-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-72-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-73-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-73-1"
class="td11"> <a
id="dx17-180024"></a><span
class="cmmi-10">btype </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-73-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-73-3"
class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">btype</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;atype </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-73-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>type&#x00A0;application<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-74-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-74-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-75-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-75-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-76-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-76-1"
class="td11"> <a
id="dx17-180025"></a><span
class="cmmi-10">atype </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-76-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-76-3"
class="td11"> <span
class="cmmi-10">gtycon </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-77-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-77-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-77-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-77-3"
class="td11"> <span
class="cmmi-10">tyvar </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-78-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-78-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-78-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-78-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;type</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;type</span><sub><span
class="cmmi-7">k</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-78-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>tuple&#x00A0;type<span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">2) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-79-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-79-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-79-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-79-3"
class="td11"> <span
class="pcrr7t-">[</span><span
class="cmmi-10">&#x00A0;type</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">]</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-79-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>list&#x00A0;type<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-80-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-80-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-80-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-80-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;type</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-80-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>parenthesized&#x00A0;constructor<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-81-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-81-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-82-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-82-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-83-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-83-1"
class="td11"> <a
id="dx17-180026"></a><span
class="cmmi-10">gtycon </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-83-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-83-3"
class="td11"> <span
class="cmmi-10">qtycon </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-84-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-84-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-84-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-84-3"
class="td11"> <span
class="pcrr7t-">()</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-84-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>unit&#x00A0;type<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-85-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-85-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-85-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-85-3"
class="td11"> <span
class="pcrr7t-">[]</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-85-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>list&#x00A0;constructor<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-86-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-86-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-86-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-86-3"
class="td11"> <span
class="pcrr7t-">(-&#x003E;)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-86-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>function&#x00A0;constructor<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-87-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-87-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-87-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-87-3"
class="td11"> <span
class="pcrr7t-">(,</span><span
class="cmsy-10">{</span><span
class="pcrr7t-">,</span><span
class="cmsy-10">}</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-87-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>tupling&#x00A0;constructors<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-88-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-88-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-89-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-89-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-90-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-90-1"
class="td11"> <a
id="dx17-180027"></a><span
class="cmmi-10">context </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-90-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-90-3"
class="td11"> <span
class="cmmi-10">class </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-91-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-91-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-91-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-91-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;class</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;class</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-91-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-92-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-92-1"
class="td11"> <a
id="dx17-180028"></a><span
class="cmmi-10">class </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-92-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-92-3"
class="td11"> <span
class="cmmi-10">qtycls</span><span
class="cmmi-10">&#x00A0;tyvar </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-93-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-93-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-93-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-93-3"
class="td11"> <span
class="cmmi-10">qtycls</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;tyvar</span><span
class="cmmi-10">&#x00A0;atype</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;atype</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-93-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-94-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-94-1"
class="td11"> <a
id="dx17-180029"></a><span
class="cmmi-10">scontext </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-94-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-94-3"
class="td11"> <span
class="cmmi-10">simpleclass </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-95-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-95-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-95-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-95-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;simpleclass</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;simpleclass</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-95-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-96-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-96-1"
class="td11"> <a
id="dx17-180030"></a><span
class="cmmi-10">simpleclass </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-96-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-96-3"
class="td11"> <span
class="cmmi-10">qtycls</span><span
class="cmmi-10">&#x00A0;tyvar </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-97-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-97-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-98-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-98-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-99-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-99-1"
class="td11"> <a
id="dx17-180031"></a><span
class="cmmi-10">simpletype </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-99-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-99-3"
class="td11"> <span
class="cmmi-10">tycon</span><span
class="cmmi-10">&#x00A0;tyvar</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;tyvar</span><sub><span
class="cmmi-7">k</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-99-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-100-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-100-1"
class="td11"> <a
id="dx17-180032"></a><span
class="cmmi-10">constrs </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-100-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-100-3"
class="td11"> <span
class="cmmi-10">constr</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">|</span><span
class="cmmi-10">&#x00A0;constr</span><sub><span
class="cmmi-7">n</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-100-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-101-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-101-1"
class="td11"> <a
id="dx17-180033"></a><span
class="cmmi-10">constr </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-101-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-101-3"
class="td11"> <span
class="cmmi-10">con</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">!</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;atype</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">!</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;atype</span><sub><span
class="cmmi-7">k</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-101-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>arity<span
class="cmmi-10">&#x00A0;con</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">=</span> <span
class="cmmi-10">&#x00A0;k,</span><span
class="cmmi-10">&#x00A0;k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-102-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-102-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-102-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-102-3"
class="td11"> <span
class="cmr-10">(</span><span
class="cmmi-10">btype</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">!</span><span
class="cmmi-10">&#x00A0;atype</span><span
class="cmr-10">)</span><span
class="cmmi-10">&#x00A0;conop</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">btype</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">!</span><span
class="cmmi-10">&#x00A0;atype</span><span
class="cmr-10">) </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-102-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>infix<span
class="cmmi-10">&#x00A0;conop</span><span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-103-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-103-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-103-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-103-3"
class="td11"> <span
class="cmmi-10">con</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;fielddecl</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;fielddecl</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-103-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-104-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-104-1"
class="td11"> <a
id="dx17-180034"></a><span
class="cmmi-10">newconstr </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-104-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-104-3"
class="td11"> <span
class="cmmi-10">con</span><span
class="cmmi-10">&#x00A0;atype </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-105-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-105-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-105-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-105-3"
class="td11"> <span
class="cmmi-10">con</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;var</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">::</span><span
class="cmmi-10">&#x00A0;type</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-106-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-106-1"
class="td11"> <a
id="dx17-180035"></a><span
class="cmmi-10">fielddecl </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-106-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-106-3"
class="td11"> <span
class="cmmi-10">vars</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">::</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">type</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">!</span><span
class="cmmi-10">&#x00A0;atype</span><span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-107-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-107-1"
class="td11"> <a
id="dx17-180036"></a><span
class="cmmi-10">deriving </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-107-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-107-3"
class="td11"> <span
class="pcrr7t-">deriving</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">dclass</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">dclass</span><sub><span
class="cmr-7">1</span></sub><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;dclass</span><sub><span
class="cmmi-7">n</span></sub><span
class="pcrr7t-">)</span><span
class="cmr-10">) </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-107-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-108-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-108-1"
class="td11"> <a
id="dx17-180037"></a><span
class="cmmi-10">dclass </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-108-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-108-3"
class="td11"> <span
class="cmmi-10">qtycls </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-109-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-109-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-110-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-110-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-111-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-111-1"
class="td11"> <a
id="dx17-180038"></a><span
class="cmmi-10">inst </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-111-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-111-3"
class="td11"> <span
class="cmmi-10">gtycon </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-112-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-112-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-112-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-112-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;gtycon</span><span
class="cmmi-10">&#x00A0;tyvar</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;tyvar</span><sub><span
class="cmmi-7">k</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-112-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0</span><span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;tyvars</span><span
class="cmmi-10">&#x00A0;</span>distinct<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-113-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-113-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-113-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-113-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;tyvar</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;tyvar</span><sub><span
class="cmmi-7">k</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-113-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">2</span><span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;tyvars</span><span
class="cmmi-10">&#x00A0;</span>distinct<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-114-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-114-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-114-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-114-3"
class="td11"> <span
class="pcrr7t-">[</span><span
class="cmmi-10">&#x00A0;tyvar</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">]</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-115-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-115-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-115-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-115-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;tyvar</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">-&#x003E;</span><span
class="cmmi-10">&#x00A0;tyvar</span><sub><span
class="cmr-7">2</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-115-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmmi-10">tyvar</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span>and<span
class="cmmi-10">&#x00A0;tyvar</span><sub><span
class="cmr-7">2</span></sub><span
class="cmmi-10">&#x00A0;</span>distinct </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-116-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-116-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-105-117-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-117-1"
class="td11"></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-118-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-118-1"
class="td11"> <a
id="dx17-180039"></a><span
class="cmmi-10">fdecl </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-118-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-118-3"
class="td11"> <span
class="pcrr7t-">import</span><span
class="cmmi-10">&#x00A0;callconv</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">safety</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;impent</span><span
class="cmmi-10">&#x00A0;var</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">::</span><span
class="cmmi-10">&#x00A0;ftype </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-118-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>define&#x00A0;variable<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-119-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-119-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-119-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-119-3"
class="td11"> <span
class="pcrr7t-">export</span><span
class="cmmi-10">&#x00A0;callconv</span><span
class="cmmi-10">&#x00A0;expent</span><span
class="cmmi-10">&#x00A0;var</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">::</span><span
class="cmmi-10">&#x00A0;ftype </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-119-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>expose&#x00A0;variable<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-120-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-120-1"
class="td11"> <span
class="cmmi-10">callconv </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-120-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-120-3"
class="td11"> <span
class="pcrr7t-">ccall</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">stdcall</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">cplusplus</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-120-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>calling&#x00A0;convention<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-121-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-121-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-121-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-121-3"
class="td11"> <span
class="pcrr7t-">jvm</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">dotnet</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-122-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-122-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-122-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-122-3"
class="td11"> <span
class="ptmb7t-">&#x00A0;system-specific</span><span
class="ptmb7t-">&#x00A0;calling</span><span
class="ptmb7t-">&#x00A0;conventions</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-123-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-123-1"
class="td11"> <a
id="dx17-180040"></a><span
class="cmmi-10">impent </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-123-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-123-3"
class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">string</span><span
class="cmr-10">] </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-123-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>see&#x00A0;Section&#x00A0;<a
href="haskellch8.html#x15-1620008.5.1">8.5.1<!--tex4ht:ref: sec:ccall --></a><span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-124-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-124-1"
class="td11"> <a
id="dx17-180041"></a><span
class="cmmi-10">expent </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-124-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-124-3"
class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">string</span><span
class="cmr-10">] </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-124-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>see&#x00A0;Section&#x00A0;<a
href="haskellch8.html#x15-1620008.5.1">8.5.1<!--tex4ht:ref: sec:ccall --></a><span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-125-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-125-1"
class="td11"> <a
id="dx17-180042"></a><span
class="cmmi-10">safety </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-125-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-125-3"
class="td11"> <span
class="pcrr7t-">unsafe</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">safe</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-126-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-126-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-127-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-127-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-128-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-128-1"
class="td11"> <a
id="dx17-180043"></a><span
class="cmmi-10">ftype </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-128-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-128-3"
class="td11"> <span
class="cmmi-10">frtype </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-129-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-129-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-129-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-129-3"
class="td11"> <span
class="cmmi-10">fatype</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmsy-10">&rarr;</span> <span
class="cmmi-10">&#x00A0;ftype </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-130-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-130-1"
class="td11"> <a
id="dx17-180044"></a><span
class="cmmi-10">frtype </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-130-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-130-3"
class="td11"> <span
class="cmmi-10">fatype </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-131-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-131-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-131-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-131-3"
class="td11"> <span
class="pcrr7t-">()</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-132-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-132-1"
class="td11"> <a
id="dx17-180045"></a><span
class="cmmi-10">fatype </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-132-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-132-3"
class="td11"> <span
class="cmmi-10">qtycon</span><span
class="cmmi-10">&#x00A0;atype</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;atype</span><sub><span
class="cmmi-7">k</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-132-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">k</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmsy-10">&ge;</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-133-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-133-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-134-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-134-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-135-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-135-1"
class="td11"> <a
id="dx17-180046"></a><span
class="cmmi-10">funlhs </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-135-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-135-3"
class="td11"> <span
class="cmmi-10">var</span><span
class="cmmi-10">&#x00A0;apat</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">&#x00A0;apat</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">} </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-136-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-136-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-136-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-136-3"
class="td11"> <span
class="cmmi-10">pat</span><span
class="cmmi-10">&#x00A0;varop</span><span
class="cmmi-10">&#x00A0;pat</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-137-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-137-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-137-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-137-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;funlhs</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span><span
class="cmmi-10">&#x00A0;apat</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">{</span><span
class="cmmi-10">&#x00A0;apat</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">} </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-138-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-138-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-139-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-139-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-140-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-140-1"
class="td11"> <a
id="dx17-180047"></a><span
class="cmmi-10">rhs </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-140-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-140-3"
class="td11"> <span
class="pcrr7t-">=</span><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">where</span><span
class="cmmi-10">&#x00A0;decls</span><span
class="cmr-10">] </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-141-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-141-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-141-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-141-3"
class="td11"> <span
class="cmmi-10">gdrhs</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">where</span><span
class="cmmi-10">&#x00A0;decls</span><span
class="cmr-10">] </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-142-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-142-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-143-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-143-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-144-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-144-1"
class="td11"> <a
id="dx17-180048"></a><span
class="cmmi-10">gdrhs </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-144-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-144-3"
class="td11"> <span
class="cmmi-10">guards</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=</span><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">gdrhs</span><span
class="cmr-10">]</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-145-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-145-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-146-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-146-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-147-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-147-1"
class="td11"> <a
id="dx17-180049"></a><span
class="cmmi-10">guards</span> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-147-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-147-3"
class="td11"> <span
class="pcrr7t-">|</span><span
class="cmmi-10">&#x00A0;guard</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;guard</span><sub><span
class="cmmi-7">n</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-147-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1)</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-148-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-148-1"
class="td11"> <a
id="dx17-180050"></a><span
class="cmmi-10">guard</span> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-148-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-148-3"
class="td11"> <span
class="cmmi-10">pat</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">&#x003C;-</span><span
class="cmmi-10">&#x00A0;infixexp</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-148-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>pattern&#x00A0;guard<span
class="cmr-10">)</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-149-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-149-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-149-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-149-3"
class="td11"> <span
class="pcrr7t-">let</span><span
class="cmmi-10">&#x00A0;decls</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-149-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>local&#x00A0;declaration<span
class="cmr-10">)</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-150-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-150-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-150-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-150-3"
class="td11"> <span
class="cmmi-10">infixexp </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-150-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>boolean&#x00A0;guard<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-151-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-151-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-152-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-152-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-153-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-153-1"
class="td11"> <a
id="dx17-180051"></a><span
class="cmmi-10">exp </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-153-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-153-3"
class="td11"> <span
class="cmmi-10">infixexp</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">::</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">context</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=&#x003E;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;type</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-153-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>expression&#x00A0;type&#x00A0;signature<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-154-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-154-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-154-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-154-3"
class="td11"> <span
class="cmmi-10">infixexp</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-155-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-155-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-156-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-156-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-157-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-157-1"
class="td11"> <a
id="dx17-180052"></a><span
class="cmmi-10">infixexp</span> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-157-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-157-3"
class="td11"> <span
class="cmmi-10">lexp</span><span
class="cmmi-10">&#x00A0;qop</span><span
class="cmmi-10">&#x00A0;infixexp</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-157-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>infix&#x00A0;operator&#x00A0;application<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-158-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-158-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-158-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-158-3"
class="td11"> <span
class="pcrr7t-">-</span><span
class="cmmi-10">&#x00A0;infixexp</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-158-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>prefix&#x00A0;negation<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-159-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-159-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-159-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-159-3"
class="td11"> <span
class="cmmi-10">lexp</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-160-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-160-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-161-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-161-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-162-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-162-1"
class="td11"> <a
id="dx17-180053"></a><span
class="cmmi-10">lexp</span> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-162-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-162-3"
class="td11"> <span
class="pcrr7t-">\</span><span
class="cmmi-10">&#x00A0;apat</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;apat</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">-&#x003E;</span><span
class="cmmi-10">&#x00A0;exp </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-162-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>lambda&#x00A0;abstraction<span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-163-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-163-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-163-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-163-3"
class="td11"> <span
class="pcrr7t-">let</span><span
class="cmmi-10">&#x00A0;decls</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">in</span><span
class="cmmi-10">&#x00A0;exp </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-163-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>let&#x00A0;expression<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-164-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-164-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-164-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-164-3"
class="td11"> <span
class="pcrr7t-">if</span><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">then</span><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">;</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">else</span><span
class="cmmi-10">&#x00A0;exp</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-164-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>conditional<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-165-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-165-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-165-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-165-3"
class="td11"> <span
class="pcrr7t-">case</span><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">of</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;alts</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-165-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>case&#x00A0;expression<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-166-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-166-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-166-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-166-3"
class="td11"> <span
class="pcrr7t-">do</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;stmts</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-166-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>do&#x00A0;expression<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-167-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-167-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-167-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-167-3"
class="td11"> <span
class="cmmi-10">fexp </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-168-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-168-1"
class="td11"> <a
id="dx17-180054"></a><span
class="cmmi-10">fexp </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-168-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-168-3"
class="td11"> <span
class="cmr-10">[</span><span
class="cmmi-10">fexp</span><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;aexp </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-168-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>function&#x00A0;application<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-169-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-169-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-170-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-170-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-171-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-171-1"
class="td11"> <a
id="dx17-180055"></a><span
class="cmmi-10">aexp </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-171-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-171-3"
class="td11"> <span
class="cmmi-10">qvar </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-171-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>variable<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-172-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-172-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-172-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-172-3"
class="td11"> <span
class="cmmi-10">gcon </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-172-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>general&#x00A0;constructor<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-173-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-173-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-173-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-173-3"
class="td11"> <span
class="cmmi-10">literal </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-174-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-174-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-174-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-174-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-174-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>parenthesized&#x00A0;expression<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-175-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-175-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-175-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-175-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;exp</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;exp</span><sub><span
class="cmmi-7">k</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-175-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>tuple<span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">2) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-176-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-176-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-176-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-176-3"
class="td11"> <span
class="pcrr7t-">[</span><span
class="cmmi-10">&#x00A0;exp</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;exp</span><sub><span
class="cmmi-7">k</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">]</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-176-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>list<span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-177-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-177-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-177-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-177-3"
class="td11"> <span
class="pcrr7t-">[</span><span
class="cmmi-10">&#x00A0;exp</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;exp</span><sub><span
class="cmr-7">2</span></sub><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">..</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">exp</span><sub><span
class="cmr-7">3</span></sub><span
class="cmr-10">]</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">]</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-177-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>arithmetic&#x00A0;sequence<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-178-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-178-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-178-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-178-3"
class="td11"> <span
class="pcrr7t-">[</span><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">|</span><span
class="cmmi-10">&#x00A0;qual</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;qual</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">]</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-178-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>list&#x00A0;comprehension<span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-179-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-179-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-179-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-179-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">infixexp</span><span
class="cmmi-10">&#x00A0;qop</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-179-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>left&#x00A0;section<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-180-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-180-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-180-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-180-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">qop</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="pcrr7t-">-</span><span
class="cmsy-7">&#x27E9;</span></sub><span
class="cmmi-10">&#x00A0;infixexp</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-180-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>right&#x00A0;section<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-181-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-181-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-181-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-181-3"
class="td11"> <span
class="cmmi-10">qcon</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;fbind</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;fbind</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-181-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>labeled&#x00A0;construction<span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-182-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-182-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-182-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-182-3"
class="td11"> <span
class="cmmi-10">aexp</span><sub><span
class="cmsy-7">&#x27E8;</span><span
class="cmmi-7">qcon</span><span
class="cmsy-7">&#x27E9;</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;fbind</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;fbind</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-182-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>labeled&#x00A0;update<span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;n</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmsy-10">&ge;</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-183-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-183-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-184-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-184-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-185-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-185-1"
class="td11"> <a
id="dx17-180056"></a><span
class="cmmi-10">qual </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-185-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-185-3"
class="td11"> <span
class="cmmi-10">pat</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">&#x003C;-</span><span
class="cmmi-10">&#x00A0;exp </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-185-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>generator<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-186-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-186-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-186-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-186-3"
class="td11"> <span
class="pcrr7t-">let</span><span
class="cmmi-10">&#x00A0;decls </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-186-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>local&#x00A0;declaration<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-187-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-187-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-187-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-187-3"
class="td11"> <span
class="cmmi-10">exp </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-187-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>guard<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-188-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-188-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-189-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-189-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-190-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-190-1"
class="td11"> <a
id="dx17-180057"></a><span
class="cmmi-10">alts </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-190-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-190-3"
class="td11"> <span
class="cmmi-10">alt</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span><span
class="cmmi-10">&#x00A0;alt</span><sub><span
class="cmmi-7">n</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-190-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-191-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-191-1"
class="td11"> <a
id="dx17-180058"></a><span
class="cmmi-10">alt </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-191-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-191-3"
class="td11"> <span
class="cmmi-10">pat</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">-&#x003E;</span><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">where</span><span
class="cmmi-10">&#x00A0;decls</span><span
class="cmr-10">] </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-192-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-192-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-192-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-192-3"
class="td11"> <span
class="cmmi-10">pat</span><span
class="cmmi-10">&#x00A0;gdpat</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">where</span><span
class="cmmi-10">&#x00A0;decls</span><span
class="cmr-10">] </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-193-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-193-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-193-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-193-3"
class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-193-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">empty</span><span
class="cmmi-10">&#x00A0;alternative</span><span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-194-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-194-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-195-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-195-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-196-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-196-1"
class="td11"> <a
id="dx17-180059"></a><span
class="cmmi-10">gdpat </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-196-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-196-3"
class="td11"> <span
class="cmmi-10">guards</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">-&#x003E;</span><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;gdpat</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">]</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-197-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-197-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-198-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-198-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-199-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-199-1"
class="td11"> <a
id="dx17-180060"></a><span
class="cmmi-10">stmts </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-199-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-199-3"
class="td11"> <span
class="cmmi-10">stmt</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;stmt</span><sub><span
class="cmmi-7">n</span></sub><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="pcrr7t-">;</span><span
class="cmr-10">] </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-199-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">n </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-200-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-200-1"
class="td11"> <a
id="dx17-180061"></a><span
class="cmmi-10">stmt </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-200-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-200-3"
class="td11"> <span
class="cmmi-10">exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-201-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-201-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-201-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-201-3"
class="td11"> <span
class="cmmi-10">pat</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">&#x003C;-</span><span
class="cmmi-10">&#x00A0;exp</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-202-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-202-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-202-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-202-3"
class="td11"> <span
class="pcrr7t-">let</span><span
class="cmmi-10">&#x00A0;decls</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">;</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-203-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-203-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-203-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-203-3"
class="td11"> <span
class="pcrr7t-">;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-203-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">empty</span><span
class="cmmi-10">&#x00A0;statement</span><span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-204-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-204-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-205-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-205-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-206-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-206-1"
class="td11"> <a
id="dx17-180062"></a><span
class="cmmi-10">fbind </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-206-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-206-3"
class="td11"> <span
class="cmmi-10">qvar</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=</span><span
class="cmmi-10">&#x00A0;exp </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-207-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-207-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-208-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-208-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-209-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-209-1"
class="td11"> <a
id="dx17-180063"></a><span
class="cmmi-10">pat </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-209-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-209-3"
class="td11"> <span
class="cmmi-10">lpat</span><span
class="cmmi-10">&#x00A0;qconop</span><span
class="cmmi-10">&#x00A0;pat</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-209-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>infix&#x00A0;constructor<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-210-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-210-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-210-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-210-3"
class="td11"> <span
class="cmmi-10">lpat</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-211-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-211-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-212-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-212-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-213-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-213-1"
class="td11"> <a
id="dx17-180064"></a><span
class="cmmi-10">lpat</span> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-213-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-213-3"
class="td11"> <span
class="cmmi-10">apat </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-214-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-214-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-214-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-214-3"
class="td11"> <span
class="pcrr7t-">-</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">(</span><span
class="cmmi-10">integer</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;float</span><span
class="cmr-10">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-214-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>negative&#x00A0;literal<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-215-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-215-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-215-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-215-3"
class="td11"> <span
class="cmmi-10">gcon</span><span
class="cmmi-10">&#x00A0;apat</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;apat</span><sub><span
class="cmmi-7">k</span></sub> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-215-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>arity<span
class="cmmi-10">&#x00A0;gcon</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">=</span> <span
class="cmmi-10">&#x00A0;k,</span><span
class="cmmi-10">&#x00A0;k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-216-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-216-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-217-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-217-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-218-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-218-1"
class="td11"> <a
id="dx17-180065"></a><span
class="cmmi-10">apat </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-218-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-218-3"
class="td11"> <span
class="cmmi-10">var</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">[</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">@</span><span
class="cmmi-10">&#x00A0;apat</span><span
class="cmr-10">] </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-218-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>as&#x00A0;pattern<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-219-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-219-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-219-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-219-3"
class="td11"> <span
class="cmmi-10">gcon </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-219-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>arity<span
class="cmmi-10">&#x00A0;gcon</span><span
class="cmmi-10">&#x00A0; </span><span
class="cmr-10">=</span> <span
class="cmmi-10">&#x00A0;</span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-220-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-220-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-220-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-220-3"
class="td11"> <span
class="cmmi-10">qcon</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">{</span><span
class="cmmi-10">&#x00A0;fpat</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;fpat</span><sub><span
class="cmmi-7">k</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">}</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-220-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>labeled&#x00A0;pattern<span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">0) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-221-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-221-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-221-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-221-3"
class="td11"> <span
class="cmmi-10">literal </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-222-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-222-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-222-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-222-3"
class="td11"> <span
class="pcrr7t-">_</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-222-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>wildcard<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-223-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-223-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-223-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-223-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;pat</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-223-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>parenthesized&#x00A0;pattern<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-224-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-224-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-224-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-224-3"
class="td11"> <span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;pat</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;pat</span><sub><span
class="cmmi-7">k</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-224-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>tuple&#x00A0;pattern<span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">2) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-225-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-225-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-225-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-225-3"
class="td11"> <span
class="pcrr7t-">[</span><span
class="cmmi-10">&#x00A0;pat</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmmi-10">&hellip;</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">,</span><span
class="cmmi-10">&#x00A0;pat</span><sub><span
class="cmmi-7">k</span></sub><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">]</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-225-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>list&#x00A0;pattern<span
class="cmmi-10">,</span><span
class="cmmi-10">&#x00A0;k </span><span
class="cmsy-10">&ge; </span><span
class="cmr-10">1) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-226-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-226-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-226-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-226-3"
class="td11"> <span
class="pcrr7t-">~</span><span
class="cmmi-10">&#x00A0;apat </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-226-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>irrefutable&#x00A0;pattern<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-227-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-227-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-228-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-228-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-229-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-229-1"
class="td11"> <a
id="dx17-180066"></a><span
class="cmmi-10">fpat </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-229-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-229-3"
class="td11"> <span
class="cmmi-10">qvar</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">=</span><span
class="cmmi-10">&#x00A0;pat </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-230-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-230-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-231-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-231-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-232-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-232-1"
class="td11"> <a
id="dx17-180067"></a><span
class="cmmi-10">gcon </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-232-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-232-3"
class="td11"> <span
class="pcrr7t-">()</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-233-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-233-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-233-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-233-3"
class="td11"> <span
class="pcrr7t-">[]</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-234-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-234-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-234-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-234-3"
class="td11"> <span
class="pcrr7t-">(,</span><span
class="cmsy-10">{</span><span
class="pcrr7t-">,</span><span
class="cmsy-10">}</span><span
class="pcrr7t-">)</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-235-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-235-1"
class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-105-235-2"
class="td11"> <span
class="cmsy-10">|</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-235-3"
class="td11"> <span
class="cmmi-10">qcon </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-236-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-236-1"
class="td11"> <span
class="ptmri7t-">&#x00A0; </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-237-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-237-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-238-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-238-1"
class="td11"> <a
id="dx17-180068"></a><span
class="cmmi-10">var </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-238-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-238-3"
class="td11"> <span
class="cmmi-10">varid</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;varsym</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-238-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>variable<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-239-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-239-1"
class="td11"> <a
id="dx17-180069"></a><span
class="cmmi-10">qvar </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-239-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-239-3"
class="td11"> <span
class="cmmi-10">qvarid</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;qvarsym</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-239-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>qualified&#x00A0;variable<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-240-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-240-1"
class="td11"> <a
id="dx17-180070"></a><span
class="cmmi-10">con </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-240-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-240-3"
class="td11"> <span
class="cmmi-10">conid</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;consym</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-240-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>constructor<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-241-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-241-1"
class="td11"> <a
id="dx17-180071"></a><span
class="cmmi-10">qcon </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-241-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-241-3"
class="td11"> <span
class="cmmi-10">qconid</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">(</span><span
class="cmmi-10">&#x00A0;gconsym</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">)</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-241-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>qualified&#x00A0;constructor<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-242-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-242-1"
class="td11"> <a
id="dx17-180072"></a><span
class="cmmi-10">varop </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-242-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-242-3"
class="td11"> <span
class="cmmi-10">varsym</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">`</span> <span
class="cmmi-10">&#x00A0;varid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">`</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-242-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>variable&#x00A0;operator<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-243-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-243-1"
class="td11"> <a
id="dx17-180073"></a><span
class="cmmi-10">qvarop </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-243-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-243-3"
class="td11"> <span
class="cmmi-10">qvarsym</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">`</span> <span
class="cmmi-10">&#x00A0;qvarid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">`</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-243-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>qualified&#x00A0;variable&#x00A0;operator<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-244-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-244-1"
class="td11"> <a
id="dx17-180074"></a><span
class="cmmi-10">conop </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-244-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-244-3"
class="td11"> <span
class="cmmi-10">consym</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">`</span> <span
class="cmmi-10">&#x00A0;conid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">`</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-244-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>constructor&#x00A0;operator<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-245-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-245-1"
class="td11"> <a
id="dx17-180075"></a><span
class="cmmi-10">qconop </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-245-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-245-3"
class="td11"> <span
class="cmmi-10">gconsym</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">`</span> <span
class="cmmi-10">&#x00A0;qconid</span><span
class="cmmi-10">&#x00A0;</span><span
class="pcrr7t-">`</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-245-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>qualified&#x00A0;constructor&#x00A0;operator<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-246-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-246-1"
class="td11"> <a
id="dx17-180076"></a><span
class="cmmi-10">op </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-246-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-246-3"
class="td11"> <span
class="cmmi-10">varop</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;conop </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-246-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>operator<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-247-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-247-1"
class="td11"> <a
id="dx17-180077"></a><span
class="cmmi-10">qop </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-247-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-247-3"
class="td11"> <span
class="cmmi-10">qvarop</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;qconop </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-105-247-4"
class="td11"> <span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="ptmri7t-">&#x00A0;</span><span
class="cmr-10">(</span>qualified&#x00A0;operator<span
class="cmr-10">) </span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-105-248-"><td style="white-space:nowrap; text-align:left;" id="TBL-105-248-1"
class="td11"> <a
id="dx17-180078"></a><span
class="cmmi-10">gconsym </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-105-248-2"
class="td11"> <span
class="cmsy-10">&rarr;</span> </td><td style="white-space:nowrap; text-align:left;" id="TBL-105-248-3"
class="td11"> <span
class="pcrr7t-">:</span><span
class="cmmi-10">&#x00A0;</span><span
class="cmsy-10">|</span><span
class="cmmi-10">&#x00A0;qconsym </span></td>
</tr></table>
</div></div>
<h3 class="sectionHead"><span class="titlemark">10.6 </span> <a
id="x17-18100010.6"></a>Fixity Resolution</h3>
<a
id="dx17-181001"></a>
<p class="noindent"> The following is an example implementation of fixity resolution for Haskell expressions. Fixity resolution also
applies to Haskell patterns, but patterns are a subset of expressions so in what follows we consider only expressions
for simplicity.
<p class="noindent"> The function <span
class="pcrr7t-">resolve</span> takes a list in which the elements are expressions or operators, i.e. an instance of the
<span
class="cmmi-10">infixexp</span> non-terminal in the context-free grammar. It returns either <span
class="pcrr7t-">Just</span><span
class="pcrr7t-">&#x00A0;e</span> where <span
class="pcrr7t-">e</span> is the resolved expression, or
<span
class="pcrr7t-">Nothing</span> if the input does not represent a valid expression. In a compiler, of course, it would be better to return more
information about the operators involved for the purposes of producing a useful error message, but the <span
class="pcrr7t-">Maybe</span> type
will suffice to illustrate the algorithm here.
<p class="noindent">
<div class="quote">
<div class="verbatim" id="verbatim-348">
import&#x00A0;Control.Monad
&#x00A0;<br />
&#x00A0;<br />type&#x00A0;Prec&#x00A0;&#x00A0;&#x00A0;=&#x00A0;Int
&#x00A0;<br />type&#x00A0;Var&#x00A0;&#x00A0;&#x00A0;&#x00A0;=&#x00A0;String
&#x00A0;<br />
&#x00A0;<br />data&#x00A0;Op&#x00A0;=&#x00A0;Op&#x00A0;String&#x00A0;Prec&#x00A0;Fixity
&#x00A0;<br />&#x00A0;&#x00A0;deriving&#x00A0;(Eq,Show)
&#x00A0;<br />
&#x00A0;<br />data&#x00A0;Fixity&#x00A0;=&#x00A0;Leftfix&#x00A0;|&#x00A0;Rightfix&#x00A0;|&#x00A0;Nonfix
&#x00A0;<br />&#x00A0;&#x00A0;deriving&#x00A0;(Eq,Show)
&#x00A0;<br />
&#x00A0;<br />data&#x00A0;Exp&#x00A0;=&#x00A0;Var&#x00A0;Var&#x00A0;|&#x00A0;OpApp&#x00A0;Exp&#x00A0;Op&#x00A0;Exp&#x00A0;|&#x00A0;Neg&#x00A0;Exp
&#x00A0;<br />&#x00A0;&#x00A0;deriving&#x00A0;(Eq,Show)
&#x00A0;<br />
&#x00A0;<br />data&#x00A0;Tok&#x00A0;=&#x00A0;TExp&#x00A0;Exp&#x00A0;|&#x00A0;TOp&#x00A0;Op&#x00A0;|&#x00A0;TNeg
&#x00A0;<br />&#x00A0;&#x00A0;deriving&#x00A0;(Eq,Show)
&#x00A0;<br />
&#x00A0;<br />resolve&#x00A0;::&#x00A0;[Tok]&#x00A0;-&#x003E;&#x00A0;Maybe&#x00A0;Exp
&#x00A0;<br />resolve&#x00A0;tokens&#x00A0;=&#x00A0;fmap&#x00A0;fst&#x00A0;$&#x00A0;parseNeg&#x00A0;(Op&#x00A0;""&#x00A0;(-1)&#x00A0;Nonfix)&#x00A0;tokens
&#x00A0;<br />&#x00A0;&#x00A0;where
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;parseNeg&#x00A0;::&#x00A0;Op&#x00A0;-&#x003E;&#x00A0;[Tok]&#x00A0;-&#x003E;&#x00A0;Maybe&#x00A0;(Exp,[Tok])
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;parseNeg&#x00A0;op1&#x00A0;(TExp&#x00A0;e1&#x00A0;:&#x00A0;rest)
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;=&#x00A0;parse&#x00A0;op1&#x00A0;e1&#x00A0;rest
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;parseNeg&#x00A0;op1&#x00A0;(TNeg&#x00A0;:&#x00A0;rest)
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;=&#x00A0;do&#x00A0;guard&#x00A0;(prec1&#x00A0;&#x003C;&#x00A0;6)
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;(r,&#x00A0;rest')&#x00A0;&#x003C;-&#x00A0;parseNeg&#x00A0;(Op&#x00A0;"-"&#x00A0;6&#x00A0;Leftfix)&#x00A0;rest
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;parse&#x00A0;op1&#x00A0;(Neg&#x00A0;r)&#x00A0;rest'
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;where
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Op&#x00A0;_&#x00A0;prec1&#x00A0;fix1&#x00A0;=&#x00A0;op1
&#x00A0;<br />
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;parse&#x00A0;::&#x00A0;Op&#x00A0;-&#x003E;&#x00A0;Exp&#x00A0;-&#x003E;&#x00A0;[Tok]&#x00A0;-&#x003E;&#x00A0;Maybe&#x00A0;(Exp,&#x00A0;[Tok])
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;parse&#x00A0;_&#x00A0;&#x00A0;&#x00A0;e1&#x00A0;[]&#x00A0;=&#x00A0;Just&#x00A0;(e1,&#x00A0;[])
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;parse&#x00A0;op1&#x00A0;e1&#x00A0;(TOp&#x00A0;op2&#x00A0;:&#x00A0;rest)
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--&#x00A0;case&#x00A0;(1):&#x00A0;check&#x00A0;for&#x00A0;illegal&#x00A0;expressions
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;|&#x00A0;prec1&#x00A0;==&#x00A0;prec2&#x00A0;&amp;&amp;&#x00A0;(fix1&#x00A0;/=&#x00A0;fix2&#x00A0;||&#x00A0;fix1&#x00A0;==&#x00A0;Nonfix)
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;=&#x00A0;Nothing
&#x00A0;<br />
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--&#x00A0;case&#x00A0;(2):&#x00A0;op1&#x00A0;and&#x00A0;op2&#x00A0;should&#x00A0;associate&#x00A0;to&#x00A0;the&#x00A0;left
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;|&#x00A0;prec1&#x00A0;&#x003E;&#x00A0;prec2&#x00A0;||&#x00A0;(prec1&#x00A0;==&#x00A0;prec2&#x00A0;&amp;&amp;&#x00A0;fix1&#x00A0;==&#x00A0;Leftfix)
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;=&#x00A0;Just&#x00A0;(e1,&#x00A0;TOp&#x00A0;op2&#x00A0;:&#x00A0;rest)
&#x00A0;<br />
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--&#x00A0;case&#x00A0;(3):&#x00A0;op1&#x00A0;and&#x00A0;op2&#x00A0;should&#x00A0;associate&#x00A0;to&#x00A0;the&#x00A0;right
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;|&#x00A0;otherwise
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;=&#x00A0;do&#x00A0;(r,rest')&#x00A0;&#x003C;-&#x00A0;parseNeg&#x00A0;op2&#x00A0;rest
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;parse&#x00A0;op1&#x00A0;(OpApp&#x00A0;e1&#x00A0;op2&#x00A0;r)&#x00A0;rest'
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;where
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Op&#x00A0;_&#x00A0;prec1&#x00A0;fix1&#x00A0;=&#x00A0;op1
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Op&#x00A0;_&#x00A0;prec2&#x00A0;fix2&#x00A0;=&#x00A0;op2
</div>
<p class="noindent"></div>
<p class="noindent"> The algorithm works as follows. At each stage we have a call
<div class="verbatim" id="verbatim-349">
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;parse&#x00A0;op1&#x00A0;E1&#x00A0;(op2&#x00A0;:&#x00A0;tokens)
</div>
<p class="noindent">
<p class="noindent"> which means that we are looking at an expression like
<div class="verbatim" id="verbatim-350">
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;E0&#x00A0;&#8216;op1&#8216;&#x00A0;E1&#x00A0;&#8216;op2&#8216;&#x00A0;...&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;(1)
</div>
<p class="noindent">
<p class="noindent"> (the caller holds E0). The job of <span
class="pcrr7t-">parse</span> is to build the expression to the right of <span
class="pcrr7t-">op1</span>, returning the expression and
any remaining input.
<p class="noindent"> There are three cases to consider:
<p class="noindent">
<ol class="enumerate1" >
<li
class="enumerate" id="x17-181003x1">if <span
class="pcrr7t-">op1</span> and <span
class="pcrr7t-">op2</span> have the same precedence, but they do not have the same associativity, or they are
declared to be nonfix, then the expression is illegal.
</li>
<li
class="enumerate" id="x17-181005x2">If <span
class="pcrr7t-">op1</span> has a higher precedence than <span
class="pcrr7t-">op2</span>, or <span
class="pcrr7t-">op1</span> and <span
class="pcrr7t-">op2</span> should left-associate, then we know that
the expression to the right of <span
class="pcrr7t-">op1</span> is <span
class="pcrr7t-">E1</span>, so we return this to the caller.
</li>
<li
class="enumerate" id="x17-181007x3">Otherwise, we know we want to build an expression of the form <span
class="pcrr7t-">E1</span><span
class="pcrr7t-">&#x00A0;&#8216;op2&#8216;</span><span
class="pcrr7t-">&#x00A0;R</span>. To find <span
class="pcrr7t-">R</span>, we call
<span
class="pcrr7t-">parseNeg</span><span
class="pcrr7t-">&#x00A0;op2</span><span
class="pcrr7t-">&#x00A0;tokens</span> to compute the expression to the right of <span
class="pcrr7t-">op2</span>, namely <span
class="pcrr7t-">R</span> (more about
<span
class="pcrr7t-">parseNeg</span> below, but essentially if <span
class="pcrr7t-">tokens</span> is of the form <span
class="pcrr7t-">(E2</span><span
class="pcrr7t-">&#x00A0;:</span><span
class="pcrr7t-">&#x00A0;rest)</span>, then this is equivalent to
<span
class="pcrr7t-">parse</span><span
class="pcrr7t-">&#x00A0;op2</span><span
class="pcrr7t-">&#x00A0;E2</span><span
class="pcrr7t-">&#x00A0;rest</span>). Now, we have
<span
class="pcrr7t-">E0</span><span
class="pcrr7t-">&#x00A0;&#8216;op1&#8216;</span><span
class="pcrr7t-">&#x00A0;(E1</span><span
class="pcrr7t-">&#x00A0;&#8216;op2&#8216;</span><span
class="pcrr7t-">&#x00A0;R)</span><span
class="pcrr7t-">&#x00A0;&#8216;op3&#8216;</span><span
class="pcrr7t-">&#x00A0;...</span>
where <span
class="pcrr7t-">op3</span> is the next operator in the input. This is an instance of (1) above, so to continue we call
parse, with the new <span
class="pcrr7t-">E1</span><span
class="pcrr7t-">&#x00A0;==</span><span
class="pcrr7t-">&#x00A0;(E1</span><span
class="pcrr7t-">&#x00A0;&#8216;op2&#8216;</span><span
class="pcrr7t-">&#x00A0;R)</span>.</li></ol>
<p class="noindent"> To initialise the algorithm, we set <span
class="pcrr7t-">op1</span> to be an imaginary operator with precedence lower than anything else. Hence
<span
class="pcrr7t-">parse</span> will consume the whole input, and return the resulting expression.
<p class="noindent"> The handling of the prefix negation operator, <span
class="pcrr7t-">-</span>, complicates matters only slightly. Recall that prefix negation has the
same fixity as infix negation: left-associative with precedence 6. The operator to the left of <span
class="pcrr7t-">-</span>, if there is one, must
have precedence lower than 6 for the expression to be legal. The negation operator itself may left-associate with
operators of the same fixity (e.g. <span
class="pcrr7t-">+</span>). So for example <span
class="pcrr7t-">-a</span><span
class="pcrr7t-">&#x00A0;+</span><span
class="pcrr7t-">&#x00A0;b</span> is legal and resolves as <span
class="pcrr7t-">(-a)</span><span
class="pcrr7t-">&#x00A0;+</span><span
class="pcrr7t-">&#x00A0;b</span>, but <span
class="pcrr7t-">a</span><span
class="pcrr7t-">&#x00A0;+</span><span
class="pcrr7t-">&#x00A0;-b</span> is
illegal.
<p class="noindent"> The function <span
class="pcrr7t-">parseNeg</span> handles prefix negation. If we encounter a negation operator, and it is legal in this position
(the operator to the left has precedence lower than 6), then we proceed in a similar way to case (3)
above: compute the argument to <span
class="pcrr7t-">-</span> by recursively calling <span
class="pcrr7t-">parseNeg</span>, and then continue by calling
<span
class="pcrr7t-">parse</span>.
<p class="noindent"> Note that this algorithm is insensitive to the range and resolution of precedences. There is no reason in principle that
Haskell should be limited to integral precedences in the range 1 to 10; a larger range, or fractional values, would
present no additional difficulties.
<!--l. 13--><div class="crosslinks"><p class="noindent">[<a
href="haskellch11.html" >next</a>] [<a
href="haskellch9.html" >prev</a>] [<a
href="haskellch9.html#tailhaskellch9.html" >prev-tail</a>] [<a
href="haskellch10.html" >front</a>] [<a
href="haskellpa1.html#haskellch10.html" >up</a>] </p></div>
<p class="noindent"> <a
id="tailhaskellch10.html"></a>
</body></html>