1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html> 3<head> 4<link rel="stylesheet" href="style.css" type="text/css"> 5<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> 6<meta name="viewport" content="width=device-width, initial-scale=1"> 7<link rel="Start" href="index.html"> 8<link rel="Up" href="index.html"> 9<link title="Index of types" rel=Appendix href="index_types.html"> 10<link title="Index of modules" rel=Appendix href="index_modules.html"> 11<link title="Variants" rel="Chapter" href="Variants.html"><title>Variants</title> 12</head> 13<body> 14<div class="navbar"> <a class="up" href="index.html" title="Index">Up</a> 15 </div> 16<h1>Module <a href="type_Variants.html">Variants</a></h1> 17 18<pre><span class="keyword">module</span> Variants: <code class="code"><span class="keyword">sig</span></code> <a href="Variants.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info module top"> 19This test is here to check the latex code generated for variants<br> 20</div> 21<hr width="100%"> 22 23<pre><code><span id="TYPEs"><span class="keyword">type</span> <code class="type"></code>s</span> = </code></pre><table class="typetable"> 24<tr> 25<td align="left" valign="top" > 26<code><span class="keyword">|</span></code></td> 27<td align="left" valign="top" > 28<code><span id="TYPEELTs.A"><span class="constructor">A</span></span></code></td> 29 30</tr> 31<tr> 32<td align="left" valign="top" > 33<code><span class="keyword">|</span></code></td> 34<td align="left" valign="top" > 35<code><span id="TYPEELTs.B"><span class="constructor">B</span></span></code></td> 36<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 37only B is documented here<br> 38</div> 39</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 40</tr> 41<tr> 42<td align="left" valign="top" > 43<code><span class="keyword">|</span></code></td> 44<td align="left" valign="top" > 45<code><span id="TYPEELTs.C"><span class="constructor">C</span></span></code></td> 46 47</tr></table> 48 49 50 51<pre><code><span id="TYPEt"><span class="keyword">type</span> <code class="type"></code>t</span> = </code></pre><table class="typetable"> 52<tr> 53<td align="left" valign="top" > 54<code><span class="keyword">|</span></code></td> 55<td align="left" valign="top" > 56<code><span id="TYPEELTt.A"><span class="constructor">A</span></span></code></td> 57<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 58doc for A<br> 59</div> 60</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 61</tr> 62<tr> 63<td align="left" valign="top" > 64<code><span class="keyword">|</span></code></td> 65<td align="left" valign="top" > 66<code><span id="TYPEELTt.B"><span class="constructor">B</span></span></code></td> 67<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 68doc for B<br> 69</div> 70</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 71</tr></table> 72 73 74 75<pre><code><span id="TYPEu"><span class="keyword">type</span> <code class="type"></code>u</span> = </code></pre><table class="typetable"> 76<tr> 77<td align="left" valign="top" > 78<code><span class="keyword">|</span></code></td> 79<td align="left" valign="top" > 80<code><span id="TYPEELTu.A"><span class="constructor">A</span></span></code></td> 81<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 82doc for A<br> 83</div> 84</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 85</tr> 86<tr> 87<td align="left" valign="top" > 88<code><span class="keyword">|</span></code></td> 89<td align="left" valign="top" > 90<code><span id="TYPEELTu.B"><span class="constructor">B</span></span> <span class="keyword">of</span> <code class="type">unit</code></code></td> 91<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 92doc for B<br> 93</div> 94</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 95</tr></table> 96 97<div class="info "> 98Some documentation for u<br> 99</div> 100 101 102<pre><code><span id="TYPEw"><span class="keyword">type</span> <code class="type"></code>w</span> = </code></pre><table class="typetable"> 103<tr> 104<td align="left" valign="top" > 105<code><span class="keyword">|</span></code></td> 106<td align="left" valign="top" > 107<code><span id="TYPEELTw.A"><span class="constructor">A</span></span> <span class="keyword">of</span> <code>{</code><table class="typetable"> 108<tr> 109<td align="left" valign="top" > 110<code> </code></td> 111<td align="left" valign="top" > 112<code><span id="TYPEELTVariants.A.x">x</span> : <code class="type">int</code>;</code></td> 113 114</tr></table> 115} 116</code></td> 117<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 118doc for A<br> 119</div> 120</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 121</tr> 122<tr> 123<td align="left" valign="top" > 124<code><span class="keyword">|</span></code></td> 125<td align="left" valign="top" > 126<code><span id="TYPEELTw.B"><span class="constructor">B</span></span> <span class="keyword">of</span> <code>{</code><table class="typetable"> 127<tr> 128<td align="left" valign="top" > 129<code> </code></td> 130<td align="left" valign="top" > 131<code><span id="TYPEELTVariants.B.y">y</span> : <code class="type">int</code>;</code></td> 132 133</tr></table> 134} 135</code></td> 136<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 137doc for B<br> 138</div> 139</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 140</tr></table> 141 142<div class="info "> 143With records<br> 144</div> 145 146 147<pre><code><span id="TYPEz"><span class="keyword">type</span> <code class="type"></code>z</span> = </code></pre><table class="typetable"> 148<tr> 149<td align="left" valign="top" > 150<code><span class="keyword">|</span></code></td> 151<td align="left" valign="top" > 152<code><span id="TYPEELTz.A"><span class="constructor">A</span></span> <span class="keyword">of</span> <code class="type">int</code></code></td> 153<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 154doc for A<br> 155</div> 156</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 157</tr> 158<tr> 159<td align="left" valign="top" > 160<code><span class="keyword">|</span></code></td> 161<td align="left" valign="top" > 162<code><span id="TYPEELTz.B"><span class="constructor">B</span></span> <span class="keyword">of</span> <code class="type">int</code></code></td> 163<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 164doc for B<br> 165</div> 166</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 167</tr></table> 168 169<div class="info "> 170With args<br> 171</div> 172 173 174<pre><code><span id="TYPEa"><span class="keyword">type</span> <code class="type"></code>a</span> = </code></pre><table class="typetable"> 175<tr> 176<td align="left" valign="top" > 177<code><span class="keyword">|</span></code></td> 178<td align="left" valign="top" > 179<code><span id="TYPEELTa.A"><span class="constructor">A</span></span> <span class="keyword">:</span> <code class="type"><a href="Variants.html#TYPEa">a</a></code></code></td> 180<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 181doc for A<br> 182</div> 183</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 184</tr></table> 185 186<div class="info "> 187Gadt notation<br> 188</div> 189 190 191<pre><code><span id="TYPEb"><span class="keyword">type</span> <code class="type"></code>b</span> = </code></pre><table class="typetable"> 192<tr> 193<td align="left" valign="top" > 194<code><span class="keyword">|</span></code></td> 195<td align="left" valign="top" > 196<code><span id="TYPEELTb.B"><span class="constructor">B</span></span></code></td> 197<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><div class="info "> 198doc for B<br> 199</div> 200</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> 201</tr></table> 202 203<div class="info "> 204Lonely constructor<br> 205</div> 206 207 208<pre><code><span id="TYPEno_documentation"><span class="keyword">type</span> <code class="type"></code>no_documentation</span> = </code></pre><table class="typetable"> 209<tr> 210<td align="left" valign="top" > 211<code><span class="keyword">|</span></code></td> 212<td align="left" valign="top" > 213<code><span id="TYPEELTno_documentation.A"><span class="constructor">A</span></span></code></td> 214 215</tr> 216<tr> 217<td align="left" valign="top" > 218<code><span class="keyword">|</span></code></td> 219<td align="left" valign="top" > 220<code><span id="TYPEELTno_documentation.B"><span class="constructor">B</span></span></code></td> 221 222</tr> 223<tr> 224<td align="left" valign="top" > 225<code><span class="keyword">|</span></code></td> 226<td align="left" valign="top" > 227<code><span id="TYPEELTno_documentation.C"><span class="constructor">C</span></span></code></td> 228 229</tr></table> 230 231 232</body></html>