/usr/share/doc/racket/raco/decompile.html is in racket-doc 6.1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>7 raco decompile: Decompiling Bytecode</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_0");">▼</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco</span>:<span class="mywbr"> </span> Racket Command-<wbr></wbr>Line Tools</a></td></tr></table></div><div class="tocviewsublisttop" style="display: block;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1 </td><td><a href="make.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco make</span>:<span class="mywbr"> </span> Compiling Source to Bytecode</a></td></tr><tr><td align="right">2 </td><td><a href="exe.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco exe</span>:<span class="mywbr"> </span> Creating Stand-<wbr></wbr>Alone Executables</a></td></tr><tr><td align="right">3 </td><td><a href="exe-dist.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco distribute</span>:<span class="mywbr"> </span> Sharing Stand-<wbr></wbr>Alone Executables</a></td></tr><tr><td align="right">4 </td><td><a href="planet.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco planet</span>:<span class="mywbr"> </span> Automatic Package Distribution</a></td></tr><tr><td align="right">5 </td><td><a href="pkg.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco pkg</span>:<span class="mywbr"> </span> Package Management</a></td></tr><tr><td align="right">6 </td><td><a href="setup.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco setup</span>:<span class="mywbr"> </span> Installation Management</a></td></tr><tr><td align="right">7 </td><td><a href="" class="tocviewselflink" data-pltdoc="x"><span class="stt">raco decompile</span>:<span class="mywbr"> </span> Decompiling Bytecode</a></td></tr><tr><td align="right">8 </td><td><a href="demod.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco demod</span>:<span class="mywbr"> </span> Demodularizing Programs</a></td></tr><tr><td align="right">9 </td><td><a href="link.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco link</span>:<span class="mywbr"> </span> Library Collection Links</a></td></tr><tr><td align="right">10 </td><td><a href="plt.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco pack</span>:<span class="mywbr"> </span> Packing Library Collections</a></td></tr><tr><td align="right">11 </td><td><a href="unpack.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco unpack</span>:<span class="mywbr"> </span> Unpacking Library Collections</a></td></tr><tr><td align="right">12 </td><td><a href="ctool.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco ctool</span>:<span class="mywbr"> </span> Working with C Code</a></td></tr><tr><td align="right">13 </td><td><a href="test.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco test</span>:<span class="mywbr"> </span> Run tests</a></td></tr><tr><td align="right">14 </td><td><a href="docs.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco docs</span>:<span class="mywbr"> </span> Documentation Search</a></td></tr><tr><td align="right">15 </td><td><a href="expand.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco expand</span>:<span class="mywbr"> </span> Macro Expansion</a></td></tr><tr><td align="right">16 </td><td><a href="scribble.html" class="tocviewlink" data-pltdoc="x"><span class="stt">raco scribble</span>:<span class="mywbr"> </span> Building Documentation</a></td></tr><tr><td align="right">17 </td><td><a href="command.html" class="tocviewlink" data-pltdoc="x">Adding a <span class="stt">raco</span> Command</a></td></tr><tr><td align="right">18 </td><td><a href="config-file.html" class="tocviewlink" data-pltdoc="x">Installation Configuration and Search Paths</a></td></tr></table></div></div><div class="tocviewlist"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_1");">►</a></td><td>7 </td><td><a href="" class="tocviewselflink" data-pltdoc="x"><span class="stt">raco decompile</span>:<span class="mywbr"> </span> Decompiling Bytecode</a></td></tr></table><div class="tocviewsublistbottom" style="display: none;" id="tocview_1"><table cellspacing="0" cellpadding="0"><tr><td align="right">7.1 </td><td><a href="#%28part._.A.P.I_for_.Decompiling%29" class="tocviewlink" data-pltdoc="x">API for Decompiling</a></td></tr><tr><td align="right">7.2 </td><td><a href="#%28part._.A.P.I_for_.Parsing_.Bytecode%29" class="tocviewlink" data-pltdoc="x">API for Parsing Bytecode</a></td></tr><tr><td align="right">7.3 </td><td><a href="#%28part._.A.P.I_for_.Marshaling_.Bytecode%29" class="tocviewlink" data-pltdoc="x">API for Marshaling Bytecode</a></td></tr><tr><td align="right">7.4 </td><td><a href="#%28part._.Bytecode_.Representation%29" class="tocviewlink" data-pltdoc="x">Bytecode Representation</a></td></tr></table></div></div></div><div class="tocsub"><div class="tocsubtitle">On this page:</div><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber">7.1<tt> </tt></span><a href="#%28part._.A.P.I_for_.Decompiling%29" class="tocsubseclink" data-pltdoc="x">API for Decompiling</a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fdecompile..rkt%29._decompile%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">decompile</span></span></a></td></tr><tr><td><span class="tocsublinknumber">7.2<tt> </tt></span><a href="#%28part._.A.P.I_for_.Parsing_.Bytecode%29" class="tocsubseclink" data-pltdoc="x">API for Parsing Bytecode</a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-parse..rkt%29._zo-parse%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">zo-<wbr></wbr>parse</span></span></a></td></tr><tr><td><span class="tocsublinknumber">7.3<tt> </tt></span><a href="#%28part._.A.P.I_for_.Marshaling_.Bytecode%29" class="tocsubseclink" data-pltdoc="x">API for Marshaling Bytecode</a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-marshal..rkt%29._zo-marshal-to%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">zo-<wbr></wbr>marshal-<wbr></wbr>to</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-marshal..rkt%29._zo-marshal%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">zo-<wbr></wbr>marshal</span></span></a></td></tr><tr><td><span class="tocsublinknumber">7.4<tt> </tt></span><a href="#%28part._.Bytecode_.Representation%29" class="tocsubseclink" data-pltdoc="x">Bytecode Representation</a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">zo</span></span></a></td></tr><tr><td><span class="tocsublinknumber">7.4.1<tt> </tt></span><a href="#%28part._.Prefix%29" class="tocsubseclink" data-pltdoc="x">Prefix</a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._compilation-top%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">compilation-<wbr></wbr>top</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">prefix</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._global-bucket%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">global-<wbr></wbr>bucket</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-variable%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">module-<wbr></wbr>variable</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._function-shape%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">function-<wbr></wbr>shape</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-shape%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">struct-<wbr></wbr>shape</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-type-shape%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">struct-<wbr></wbr>type-<wbr></wbr>shape</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._constructor-shape%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">constructor-<wbr></wbr>shape</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._predicate-shape%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">predicate-<wbr></wbr>shape</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._accessor-shape%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">accessor-<wbr></wbr>shape</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mutator-shape%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">mutator-<wbr></wbr>shape</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-other-shape%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">struct-<wbr></wbr>other-<wbr></wbr>shape</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._stx%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">stx</span></span></a></td></tr><tr><td><span class="tocsublinknumber">7.4.2<tt> </tt></span><a href="#%28part._.Forms%29" class="tocsubseclink" data-pltdoc="x">Forms</a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">form</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._def-values%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">def-<wbr></wbr>values</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._def-syntaxes%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">def-<wbr></wbr>syntaxes</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq-for-syntax%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">seq-<wbr></wbr>for-<wbr></wbr>syntax</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._req%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">req</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">seq</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._splice%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">splice</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._inline-variant%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">inline-<wbr></wbr>variant</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mod%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">mod</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._provided%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">provided</span></span></a></td></tr><tr><td><span class="tocsublinknumber">7.4.3<tt> </tt></span><a href="#%28part._.Expressions%29" class="tocsubseclink" data-pltdoc="x">Expressions</a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">expr</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._lam%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">lam</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._closure%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">closure</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._case-lam%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">case-<wbr></wbr>lam</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._let-one%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">let-<wbr></wbr>one</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._let-void%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">let-<wbr></wbr>void</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._install-value%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">install-<wbr></wbr>value</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._let-rec%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">let-<wbr></wbr>rec</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._boxenv%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">boxenv</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._localref%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">localref</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">toplevel</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._topsyntax%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">topsyntax</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._application%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">application</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._branch%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">branch</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._with-cont-mark%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">with-<wbr></wbr>cont-<wbr></wbr>mark</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._beg0%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">beg0</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._varref%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">varref</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._assign%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">assign</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._apply-values%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">apply-<wbr></wbr>values</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._primval%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">primval</span></span></a></td></tr><tr><td><span class="tocsublinknumber">7.4.4<tt> </tt></span><a href="#%28part._.Syntax_.Objects%29" class="tocsubseclink" data-pltdoc="x">Syntax Objects</a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrapped%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">wrapped</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrap%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">wrap</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._top-level-rename%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">top-<wbr></wbr>level-<wbr></wbr>rename</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mark-barrier%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">mark-<wbr></wbr>barrier</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._free-id-info%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">free-<wbr></wbr>id-<wbr></wbr>info</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._lexical-rename%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">lexical-<wbr></wbr>rename</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._phase-shift%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">phase-<wbr></wbr>shift</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-rename%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">module-<wbr></wbr>rename</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._all-from-module%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">all-<wbr></wbr>from-<wbr></wbr>module</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-binding%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">module-<wbr></wbr>binding</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._simple-module-binding%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">simple-<wbr></wbr>module-<wbr></wbr>binding</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._phased-module-binding%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">phased-<wbr></wbr>module-<wbr></wbr>binding</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._exported-nominal-module-binding%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">exported-<wbr></wbr>nominal-<wbr></wbr>module-<wbr></wbr>binding</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._nominal-module-binding%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">nominal-<wbr></wbr>module-<wbr></wbr>binding</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._exported-module-binding%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">exported-<wbr></wbr>module-<wbr></wbr>binding</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._nominal-path%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">nominal-<wbr></wbr>path</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._simple-nominal-path%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">simple-<wbr></wbr>nominal-<wbr></wbr>path</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._imported-nominal-path%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">imported-<wbr></wbr>nominal-<wbr></wbr>path</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._phased-nominal-path%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">phased-<wbr></wbr>nominal-<wbr></wbr>path</span></span></a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, "6.1", "../");" onfocus="this.style.color="black"; this.style.textAlign="left"; if (this.value == "...search manuals...") this.value="";" onblur="if (this.value.match(/^ *$/)) { this.style.color="#888"; this.style.textAlign="center"; this.value="...search manuals..."; }"/></form> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.1");">top</a></span><span class="navright"> <a href="xref.html" title="backward to "6.12 API for Cross-References for Installed Manuals"" data-pltdoc="x">← prev</a> <a href="index.html" title="up to "raco: Racket Command-Line Tools"" data-pltdoc="x">up</a> <a href="demod.html" title="forward to "8 raco demod: Demodularizing Programs"" data-pltdoc="x">next →</a></span> </div><h3 x-source-module="(lib "scribblings/raco/raco.scrbl")" x-part-tag=""decompile"">7<tt> </tt><a name="(part._decompile)"></a><span class="stt">raco decompile</span>: Decompiling Bytecode</h3><p>The <span class="stt">raco decompile</span> command takes the path of a bytecode file (which usually
has the file extension <span class="stt">".zo"</span>) or a source file with an
associated bytecode file (usually created with <span class="stt">raco make</span>) and
converts the bytecode file’s content back to an approximation of Racket code. Decompiled
bytecode is mostly useful for checking the compiler’s transformation
and optimization of the source program.</p><p>The <span class="stt">raco decompile</span> command accepts the following command-line flags:</p><ul><li><p><span class="nobreak"><span class="stt">--force</span></span> —<wbr></wbr> skip modification-date comparison on the
given file’s path and an associated <span class="stt">".zo"</span> file (if any)</p></li><li><p><span class="nobreak"><span class="stt">-n</span></span> <span class="sroman">‹<span style="font-style: italic">n</span>›</span> or <span class="nobreak"><span class="stt">--columns</span></span> <span class="sroman">‹<span style="font-style: italic">n</span>›</span> —<wbr></wbr> format
output for a display with <span class="sroman">‹<span style="font-style: italic">n</span>›</span> columns</p></li></ul><p>Many forms in the decompiled code, such as <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=module.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._module%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">module</a></span>,
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">define</a></span>, and <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span>, have the same meanings as
always. Other forms and transformations are specific to the rendering
of bytecode, and they reflect a specific execution model:</p><ul><li><p>Top-level variables, variables defined within the module, and
variables imported from other modules are prefixed with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">_</span><span class="hspace"></span></span>,
which helps expose the difference between uses of local variables
versus other variables. Variables imported from other modules,
moreover, have a suffix starting with <span class="RktInBG"><span class="hspace"></span><span class="RktIn">@</span><span class="hspace"></span></span> that indicates
the source module. Finally, imported variables with constantness
have a midfix:
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">:c</span><span class="hspace"></span></span> to indicate constant shape across all instantiations,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">:f</span><span class="hspace"></span></span> to indicate a fixed value after initialization,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">:p</span><span class="hspace"></span></span> to indicate a procedure,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">:P</span><span class="hspace"></span></span> to indicate a procedure that preserves continuation
marks on return,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">:t</span><span class="hspace"></span></span> to indicate a structure type,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">:mk</span><span class="hspace"></span></span> to indicate a structure constructor,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">:?</span><span class="hspace"></span></span> to indicate a structure predicate,
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">:ref</span><span class="hspace"></span></span> to indicate a structure accessor, or
<span class="RktInBG"><span class="hspace"></span><span class="RktIn">:set!</span><span class="hspace"></span></span> to indicate a structure mutator.</p><p>Non-local variables are always accessed indirectly though an implicit
<span class="RktSym">#%globals</span> or <span class="RktSym">#%modvars</span> variable that
resides on the value stack (which otherwise contains local
variables). Variable accesses are further wrapped with
<span class="RktSym">#%checked</span> when the compiler cannot prove that the
variable will be defined before the access.</p><p>Uses of core primitives are shown without a leading <span class="RktInBG"><span class="hspace"></span><span class="RktIn">_</span><span class="hspace"></span></span>, and
they are never wrapped with <span class="RktSym">#%checked</span>.</p></li><li><p>Local-variable access may be wrapped with
<span class="RktSym">#%sfs-clear</span>, which indicates that the variable-stack
location holding the variable will be cleared to prevent the
variable’s value from being retained by the garbage collector.
Variables whose name starts with <span class="RktSym">unused</span> are never
actually stored on the stack, and so they never have
<span class="RktSym">#%sfs-clear</span> annotations. (The bytecode compiler
normally eliminates such bindings, but sometimes it cannot, either
because it cannot prove that the right-hand side produces the right
number of values, or the discovery that the variable is unused
happens too late with the compiler.)</p><p>Mutable variables are converted to explicitly boxed values using
<span class="RktSym">#%box</span>, <span class="RktSym">#%unbox</span>, and
<span class="RktSym">#%set-boxes!</span> (which works on multiple boxes at once).
A <span class="RktSym">set!-rec-values</span> operation constructs
mutually-recursive closures and simultaneously updates the
corresponding variable-stack locations that bind the closures. A
<span class="RktSym">set!</span>, <span class="RktSym">set!-values</span>, or
<span class="RktSym">set!-rec-values</span> form is always used on a local
variable before it is captured by a closure; that ordering reflects
how closures capture values in variable-stack locations, as opposed
to stack locations.</p></li><li><p>In a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> form, if the procedure produced by the
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> has a name (accessible via <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=inspectors.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._object-name%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">object-name</a></span>)
and/or source-location information, then it is shown as a quoted
constant at the start of the procedure’s body. Afterward, if the
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> form captures any bindings from its context, those
bindings are also shown in a quoted constant. Neither constant
corresponds to a computation when the closure is called, though the
list of captured bindings corresponds to a closure allocation when
the <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> form itself is evaluated.</p><p>A <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> form that closes over no bindings is wrapped with
<span class="RktSym">#%closed</span> plus an identifier that is bound to the
closure. The binding’s scope covers the entire decompiled output, and
it may be referenced directly in other parts of the program; the
binding corresponds to a constant closure value that is shared, and
it may even contain cyclic references to itself or other constant
closures.</p></li><li><p>A form <span class="RktPn">(</span><span class="RktSym">#%apply-values</span><span class="stt"> </span><span class="RktVar">proc</span><span class="stt"> </span><span class="RktVar">expr</span><span class="RktPn">)</span> is equivalent to
<span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=values.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._call-with-values%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">call-with-values</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktVar">expr</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktVar">proc</span><span class="RktPn">)</span>, but the run-time
system avoids allocating a closure for <span class="RktVar">expr</span>.</p></li><li><p>A <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._define-values%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">define-values</a></span> form may have <span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=begin.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._begin%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">begin</a></span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">%%inline-variant%%</span><span class="stt"> </span><span class="RktVar">expr1</span><span class="stt"> </span><span class="RktVar">expr2</span><span class="RktPn">)</span> for its expression, in which case
<span class="RktVar">expr2</span> is the normal result, but <span class="RktVar">expr1</span> may be
inlined for calls to the definition from other modules. Definitions
of functions without an <span class="RktVal">'</span><span class="RktVal">%%inline-variant%%</span> are never
inlined across modules.</p></li><li><p>Function arguments and local bindings that are known to have a
particular type have names that embed the known type. For example, an
argument might have a name that starts <span class="RktSym">argflonum</span> or a
local binding might have a name that starts <span class="RktSym">flonum</span> to
indicate a flonum value.</p></li><li><p>A <span class="RktSym">#%decode-syntax</span> form corresponds to a syntax
object.</p></li></ul><h4 x-source-module="(lib "scribblings/raco/raco.scrbl")" x-part-tag=""API_for_Decompiling"">7.1<tt> </tt><a name="(part._.A.P.I_for_.Decompiling)"></a><a name="(mod-path._compiler/decompile)"></a>API for Decompiling</h4><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._compiler%2Fdecompile%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">compiler/decompile</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">compiler-lib</span></span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._compiler/decompile..rkt)._decompile))"></a><span title="Provided from: compiler/decompile | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fdecompile..rkt%29._decompile%29%29" class="RktValDef RktValLink" data-pltdoc="x">decompile</a></span></span><span class="hspace"> </span><span class="RktVar">top</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym">any/c</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">top</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._compilation-top~3f%29%29" class="RktValLink" data-pltdoc="x">compilation-top?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Consumes the result of parsing bytecode and returns an S-expression
(as described above) that represents the compiled code.</div></p><h4 x-source-module="(lib "scribblings/raco/raco.scrbl")" x-part-tag=""API_for_Parsing_Bytecode"">7.2<tt> </tt><a name="(part._.A.P.I_for_.Parsing_.Bytecode)"></a><a name="(mod-path._compiler/zo-parse)"></a>API for Parsing Bytecode</h4><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._compiler%2Fzo-parse%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">compiler/zo-parse</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">compiler-lib</span></span></td></tr></table></p><p>The <a href="#%28mod-path._compiler%2Fzo-parse%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">compiler/zo-parse</span></a> module re-exports
<a href="#%28mod-path._compiler%2Fzo-structs%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">compiler/zo-structs</span></a> in addition to
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-parse..rkt%29._zo-parse%29%29" class="RktValLink" data-pltdoc="x">zo-parse</a></span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._compiler/zo-parse..rkt)._zo-parse))"></a><span title="Provided from: compiler/zo-parse | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-parse..rkt%29._zo-parse%29%29" class="RktValDef RktValLink" data-pltdoc="x">zo-parse</a></span></span><span class="hspace"> </span>[<span class="RktVar">in</span>]<span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._compilation-top~3f%29%29" class="RktValLink" data-pltdoc="x">compilation-top?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">in</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._input-port%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">input-port?</a></span><span class="hspace"> </span>=<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-input-port%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">current-input-port</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Parses a port (typically the result of opening a <span class="stt">".zo"</span> file)
containing bytecode. Beware that the structure types used to
represent the bytecode are subject to frequent changes across Racket
versons.</div></p><p>The parsed bytecode is returned in a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._compilation-top%29%29" class="RktValLink" data-pltdoc="x">compilation-top</a></span>
structure. For a compiled module, the <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._compilation-top%29%29" class="RktValLink" data-pltdoc="x">compilation-top</a></span>
structure will contain a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mod%29%29" class="RktValLink" data-pltdoc="x">mod</a></span> structure. For a top-level
sequence, it will normally contain a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq%29%29" class="RktValLink" data-pltdoc="x">seq</a></span> or <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._splice%29%29" class="RktValLink" data-pltdoc="x">splice</a></span>
structure with a list of top-level declarations and expressions.</p><p>The bytecode representation of an expression is closer to an
S-expression than a traditional, flat control string. For example, an
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._if%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">if</a></span> form is represented by a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._branch%29%29" class="RktValLink" data-pltdoc="x">branch</a></span> structure that
has three fields: a test expression, a “then” expression, and an
“else” expression. Similarly, a function call is represented by an
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._application%29%29" class="RktValLink" data-pltdoc="x">application</a></span> structure that has a list of argument
expressions.</p><p>Storage for local variables or intermediate values (such as the
arguments for a function call) is explicitly specified in terms of a
stack. For example, execution of an <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._application%29%29" class="RktValLink" data-pltdoc="x">application</a></span> structure
reserves space on the stack for each argument result. Similarly, when
a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._let-one%29%29" class="RktValLink" data-pltdoc="x">let-one</a></span> structure (for a simple <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=let.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._let%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">let</a></span>) is executed,
the value obtained by evaluating the right-hand side expression is
pushed onto the stack, and then the body is evaluated. Local
variables are always accessed as offsets from the current stack
position. When a function is called, its arguments are passed on the
stack. A closure is created by transferring values from the stack to
a flat closure record, and when a closure is applied, the saved values
are restored on the stack (though possibly in a different order and
likely in a more compact layout than when they were captured).</p><p>When a sub-expression produces a value, then the stack pointer is
restored to its location from before evaluating the sub-expression.
For example, evaluating the right-hand size for a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._let-one%29%29" class="RktValLink" data-pltdoc="x">let-one</a></span>
structure may temporarily push values onto the stack, but the stack is
restored to its pre-<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._let-one%29%29" class="RktValLink" data-pltdoc="x">let-one</a></span> position before pushing the
resulting value and continuing with the body. In addition, a tail
call resets the stack pointer to the position that follows the
enclosing function’s arguments, and then the tail call continues by
pushing onto the stack the arguments for the tail-called function.</p><p>Values for global and module-level variables are not put directly on
the stack, but instead stored in “buckets,” and an array of
accessible buckets is kept on the stack. When a closure body needs to
access a global variable, the closure captures and later restores the
bucket array in the same way that it captured and restores a local
variable. Mutable local variables are boxed similarly to global
variables, but individual boxes are referenced from the stack and
closures.</p><p>Quoted syntax (in the sense of <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Syntax_Quoting__quote-syntax.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._quote-syntax%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">quote-syntax</a></span>) is treated like
a global variable, because it must be instantiated for an appropriate
phase. A <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span> structure within a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._compilation-top%29%29" class="RktValLink" data-pltdoc="x">compilation-top</a></span>
or <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mod%29%29" class="RktValLink" data-pltdoc="x">mod</a></span> structure indicates the list of global variables and
quoted syntax that need to be instantiated (and put into an array on
the stack) before evaluating expressions that might use them.</p><h4 x-source-module="(lib "scribblings/raco/raco.scrbl")" x-part-tag=""API_for_Marshaling_Bytecode"">7.3<tt> </tt><a name="(part._.A.P.I_for_.Marshaling_.Bytecode)"></a><a name="(mod-path._compiler/zo-marshal)"></a>API for Marshaling Bytecode</h4><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._compiler%2Fzo-marshal%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">compiler/zo-marshal</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">compiler-lib</span></span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._compiler/zo-marshal..rkt)._zo-marshal-to))"></a><span title="Provided from: compiler/zo-marshal | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-marshal..rkt%29._zo-marshal-to%29%29" class="RktValDef RktValLink" data-pltdoc="x">zo-marshal-to</a></span></span><span class="hspace"> </span><span class="RktVar">top</span><span class="hspace"> </span><span class="RktVar">out</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">top</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._compilation-top~3f%29%29" class="RktValLink" data-pltdoc="x">compilation-top?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">out</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._output-port%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">output-port?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Consumes a representation of bytecode and writes it to <span class="RktVar">out</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._compiler/zo-marshal..rkt)._zo-marshal))"></a><span title="Provided from: compiler/zo-marshal | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-marshal..rkt%29._zo-marshal%29%29" class="RktValDef RktValLink" data-pltdoc="x">zo-marshal</a></span></span><span class="hspace"> </span><span class="RktVar">top</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">top</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._compilation-top~3f%29%29" class="RktValLink" data-pltdoc="x">compilation-top?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Consumes a representation of bytecode and generates a byte string for
the marshaled bytecode.</div></p><h4 x-source-module="(lib "scribblings/raco/raco.scrbl")" x-part-tag=""Bytecode_Representation"">7.4<tt> </tt><a name="(part._.Bytecode_.Representation)"></a><a name="(mod-path._compiler/zo-structs)"></a>Bytecode Representation</h4><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._compiler%2Fzo-structs%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">compiler/zo-structs</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <span class="stt">compiler-lib</span></span></td></tr></table></p><p>The <a href="#%28mod-path._compiler%2Fzo-structs%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">compiler/zo-structs</span></a> library defines the bytecode
structures that are produced by <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-parse..rkt%29._zo-parse%29%29" class="RktValLink" data-pltdoc="x">zo-parse</a></span> and consumed by
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fdecompile..rkt%29._decompile%29%29" class="RktValLink" data-pltdoc="x">decompile</a></span> and <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-marshal..rkt%29._zo-marshal%29%29" class="RktValLink" data-pltdoc="x">zo-marshal</a></span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._make-zo))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._zo~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3azo))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._zo))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValDef RktValLink" data-pltdoc="x">zo</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-zo%29%29" class="RktValLink" data-pltdoc="x">make-zo</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A supertype for all forms that can appear in compiled code.</div></p><h5 x-source-module="(lib "scribblings/raco/raco.scrbl")" x-part-tag=""Prefix"">7.4.1<tt> </tt><a name="(part._.Prefix)"></a>Prefix</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._compilation-top-code))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._compilation-top-prefix))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._compilation-top-max-let-depth))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-compilation-top))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._compilation-top~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3acompilation-top))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._compilation-top))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._compilation-top%29%29" class="RktValDef RktValLink" data-pltdoc="x">compilation-top</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">max-let-depth</span><span class="stt"> </span><span class="RktSym">prefix</span><span class="stt"> </span><span class="RktSym">code</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-compilation-top%29%29" class="RktValLink" data-pltdoc="x">make-compilation-top</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">max-let-depth</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">prefix</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix~3f%29%29" class="RktValLink" data-pltdoc="x">prefix?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">code</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form~3f%29%29" class="RktValLink" data-pltdoc="x">form?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Wraps compiled code. The <span class="RktSym">max-let-depth</span> field indicates the
maximum stack depth that <span class="RktSym">code</span> creates (not counting the
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span> array). The <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span> field describes top-level
variables, module-level variables, and quoted syntax-objects accessed
by <span class="RktSym">code</span>. The <span class="RktSym">code</span> field contains executable code;
it is normally a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValLink" data-pltdoc="x">form</a></span>, but a literal value is represented as
itself.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._prefix-stxs))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._prefix-toplevels))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._prefix-num-lifts))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-prefix))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._prefix~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aprefix))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._prefix))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValDef RktValLink" data-pltdoc="x">prefix</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">num-lifts</span><span class="stt"> </span><span class="RktSym">toplevels</span><span class="stt"> </span><span class="RktSym">stxs</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-prefix%29%29" class="RktValLink" data-pltdoc="x">make-prefix</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">num-lifts</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td><span class="hspace"> </span></td><td><span class="RktSym">toplevels</span></td><td><span class="hspace"> </span></td><td>:</td><td><span class="hspace"> </span></td><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._global-bucket~3f%29%29" class="RktValLink" data-pltdoc="x">global-bucket?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-variable~3f%29%29" class="RktValLink" data-pltdoc="x">module-variable?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">stxs</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._stx~3f%29%29" class="RktValLink" data-pltdoc="x">stx?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a “prefix” that is pushed onto the stack to initiate
evaluation. The prefix is an array, where buckets holding the
values for <span class="RktSym">toplevels</span> are first, then the buckets for the
<span class="RktSym">stxs</span>, then a bucket for another array if <span class="RktSym">stxs</span> is
non-empty, then <span class="RktSym">num-lifts</span> extra buckets for lifted local
procedures.</div></p><p><div class="SIntrapara">In <span class="RktSym">toplevels</span>, each element is one of the following:
</div><div class="SIntrapara"><ul><li><p>a <span class="RktVal">#f</span>, which indicates a dummy variable that is used
to access the enclosing module/namespace at run time;</p></li><li><p>a symbol, which is a reference to a variable defined in the
enclosing module;</p></li><li><p>a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._global-bucket%29%29" class="RktValLink" data-pltdoc="x">global-bucket</a></span>, which is a top-level variable (appears
only outside of modules); or</p></li><li><p>a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-variable%29%29" class="RktValLink" data-pltdoc="x">module-variable</a></span>, which indicates a variable imported
from another module.</p></li></ul></div></p><p>The variable buckets and syntax objects that are recorded in a prefix
are accessed by <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel%29%29" class="RktValLink" data-pltdoc="x">toplevel</a></span> and <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._topsyntax%29%29" class="RktValLink" data-pltdoc="x">topsyntax</a></span> expression
forms.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._global-bucket-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-global-bucket))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._global-bucket~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aglobal-bucket))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._global-bucket))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._global-bucket%29%29" class="RktValDef RktValLink" data-pltdoc="x">global-bucket</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">name</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-global-bucket%29%29" class="RktValLink" data-pltdoc="x">make-global-bucket</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a top-level variable, and used only in a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._module-variable-constantness))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-variable-phase))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-variable-pos))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-variable-sym))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-variable-modidx))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-module-variable))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-variable~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3amodule-variable))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-variable))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-variable%29%29" class="RktValDef RktValLink" data-pltdoc="x">module-variable</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">modidx</span><span class="stt"> </span><span class="RktSym">sym</span><span class="stt"> </span><span class="RktSym">pos</span><span class="stt"> </span><span class="RktSym">phase</span><span class="stt"> </span><span class="RktSym">constantness</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-module-variable%29%29" class="RktValLink" data-pltdoc="x">make-module-variable</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">modidx</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">sym</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">pos</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">phase</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td><span class="hspace"> </span></td><td><span class="RktSym">constantness</span></td><td><span class="hspace"> </span></td><td>:</td><td><span class="hspace"> </span></td><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">constant</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">fixed</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._function-shape~3f%29%29" class="RktValLink" data-pltdoc="x">function-shape?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-shape~3f%29%29" class="RktValLink" data-pltdoc="x">struct-shape?</a></span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Represents a top-level variable, and used only in a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span>.
The <span class="RktSym">pos</span> may record the variable’s offset within its module,
or it can be <span class="RktVal"><span class="nobreak">-1</span></span> if the variable is always located by name.
The <span class="RktSym">phase</span> indicates the phase level of the definition within
its module. The <span class="RktSym">constantness</span> field is either <span class="RktVal">'</span><span class="RktVal">constant</span>,
a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._function-shape%29%29" class="RktValLink" data-pltdoc="x">function-shape</a></span> value, or a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-shape%29%29" class="RktValLink" data-pltdoc="x">struct-shape</a></span> value
to indicate that
variable’s value is always the same for every instantiation of its module;
<span class="RktVal">'</span><span class="RktVal">fixed</span> to indicate
that it doesn’t change within a particular instantiation of the module;
or <span class="RktVal">#f</span> to indicate that the variable’s value
can change even for one particular instantiation of its module.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._function-shape-preserves-marks~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._function-shape-arity))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-function-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._function-shape~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3afunction-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._function-shape))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._function-shape%29%29" class="RktValDef RktValLink" data-pltdoc="x">function-shape</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">arity</span><span class="stt"> </span><span class="RktSym">preserves-marks?</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-function-shape%29%29" class="RktValLink" data-pltdoc="x">make-function-shape</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">arity</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=procedures.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._procedure-arity%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">procedure-arity?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">preserves-marks?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents the shape of an expected import, which should be a function
having the arity specified by <span class="RktSym">arity</span>. The
<span class="RktSym">preserves-marks?</span> field is true if calling the function is
expected to leave continuation marks unchanged by the time it
returns.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._make-struct-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct-shape~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3astruct-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct-shape))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-shape%29%29" class="RktValDef RktValLink" data-pltdoc="x">struct-shape</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-struct-shape%29%29" class="RktValLink" data-pltdoc="x">make-struct-shape</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._struct-type-shape-field-count))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-struct-type-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct-type-shape~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3astruct-type-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct-type-shape))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-type-shape%29%29" class="RktValDef RktValLink" data-pltdoc="x">struct-type-shape</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-shape%29%29" class="RktValLink" data-pltdoc="x">struct-shape</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">field-count</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-struct-type-shape%29%29" class="RktValLink" data-pltdoc="x">make-struct-type-shape</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">field-count</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._constructor-shape-arity))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-constructor-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._constructor-shape~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aconstructor-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._constructor-shape))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._constructor-shape%29%29" class="RktValDef RktValLink" data-pltdoc="x">constructor-shape</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-shape%29%29" class="RktValLink" data-pltdoc="x">struct-shape</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">arity</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-constructor-shape%29%29" class="RktValLink" data-pltdoc="x">make-constructor-shape</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">arity</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._make-predicate-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._predicate-shape~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3apredicate-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._predicate-shape))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._predicate-shape%29%29" class="RktValDef RktValLink" data-pltdoc="x">predicate-shape</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-shape%29%29" class="RktValLink" data-pltdoc="x">struct-shape</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-predicate-shape%29%29" class="RktValLink" data-pltdoc="x">make-predicate-shape</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._accessor-shape-field-count))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-accessor-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._accessor-shape~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aaccessor-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._accessor-shape))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._accessor-shape%29%29" class="RktValDef RktValLink" data-pltdoc="x">accessor-shape</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-shape%29%29" class="RktValLink" data-pltdoc="x">struct-shape</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">field-count</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-accessor-shape%29%29" class="RktValLink" data-pltdoc="x">make-accessor-shape</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">field-count</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._mutator-shape-field-count))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-mutator-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mutator-shape~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3amutator-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mutator-shape))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mutator-shape%29%29" class="RktValDef RktValLink" data-pltdoc="x">mutator-shape</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-shape%29%29" class="RktValLink" data-pltdoc="x">struct-shape</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">field-count</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-mutator-shape%29%29" class="RktValLink" data-pltdoc="x">make-mutator-shape</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">field-count</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._make-struct-other-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct-other-shape~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3astruct-other-shape))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct-other-shape))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-other-shape%29%29" class="RktValDef RktValLink" data-pltdoc="x">struct-other-shape</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._struct-shape%29%29" class="RktValLink" data-pltdoc="x">struct-shape</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-struct-other-shape%29%29" class="RktValLink" data-pltdoc="x">make-struct-other-shape</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Represents the shape of an expected import as a structure-type
binding, constructor, etc.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._stx-encoded))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-stx))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._stx~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3astx))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._stx))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._stx%29%29" class="RktValDef RktValLink" data-pltdoc="x">stx</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">encoded</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-stx%29%29" class="RktValLink" data-pltdoc="x">make-stx</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">encoded</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrapped~3f%29%29" class="RktValLink" data-pltdoc="x">wrapped?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Wraps a syntax object in a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span>.</div></p><h5 x-source-module="(lib "scribblings/raco/raco.scrbl")" x-part-tag=""Forms"">7.4.2<tt> </tt><a name="(part._.Forms)"></a>Forms</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._make-form))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._form~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aform))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._form))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValDef RktValLink" data-pltdoc="x">form</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-form%29%29" class="RktValLink" data-pltdoc="x">make-form</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A supertype for all forms that can appear in compiled code (including
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span>s), except for literals that are represented as
themselves.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._def-values-rhs))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._def-values-ids))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-def-values))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._def-values~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3adef-values))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._def-values))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._def-values%29%29" class="RktValDef RktValLink" data-pltdoc="x">def-values</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValLink" data-pltdoc="x">form</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">ids</span><span class="stt"> </span><span class="RktSym">rhs</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-def-values%29%29" class="RktValLink" data-pltdoc="x">make-def-values</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">ids</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel~3f%29%29" class="RktValLink" data-pltdoc="x">toplevel?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">rhs</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._inline-variant~3f%29%29" class="RktValLink" data-pltdoc="x">inline-variant?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._define-values%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">define-values</a></span> form. Each element of
<span class="RktSym">ids</span> will reference via the prefix either a top-level variable
or a local module variable.</div></p><p>After <span class="RktSym">rhs</span> is evaluated, the stack is restored to its depth
from before evaluating <span class="RktSym">rhs</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._def-syntaxes-dummy))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._def-syntaxes-max-let-depth))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._def-syntaxes-prefix))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._def-syntaxes-rhs))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._def-syntaxes-ids))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-def-syntaxes))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._def-syntaxes~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3adef-syntaxes))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._def-syntaxes))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._def-syntaxes%29%29" class="RktValDef RktValLink" data-pltdoc="x">def-syntaxes</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValLink" data-pltdoc="x">form</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">ids</span><span class="stt"> </span><span class="RktSym">rhs</span><span class="stt"> </span><span class="RktSym">prefix</span><span class="stt"> </span><span class="RktSym">max-let-depth</span><span class="stt"> </span><span class="RktSym">dummy</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-def-syntaxes%29%29" class="RktValLink" data-pltdoc="x">make-def-syntaxes</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">ids</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">rhs</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">prefix</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix~3f%29%29" class="RktValLink" data-pltdoc="x">prefix?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">max-let-depth</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">dummy</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel~3f%29%29" class="RktValLink" data-pltdoc="x">toplevel?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._seq-for-syntax-dummy))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._seq-for-syntax-max-let-depth))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._seq-for-syntax-prefix))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._seq-for-syntax-forms))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-seq-for-syntax))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._seq-for-syntax~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aseq-for-syntax))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._seq-for-syntax))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq-for-syntax%29%29" class="RktValDef RktValLink" data-pltdoc="x">seq-for-syntax</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValLink" data-pltdoc="x">form</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">forms</span><span class="stt"> </span><span class="RktSym">prefix</span><span class="stt"> </span><span class="RktSym">max-let-depth</span><span class="stt"> </span><span class="RktSym">dummy</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-seq-for-syntax%29%29" class="RktValLink" data-pltdoc="x">make-seq-for-syntax</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">forms</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form~3f%29%29" class="RktValLink" data-pltdoc="x">form?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">prefix</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix~3f%29%29" class="RktValLink" data-pltdoc="x">prefix?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">max-let-depth</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">dummy</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel~3f%29%29" class="RktValLink" data-pltdoc="x">toplevel?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._define-syntaxes%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">define-syntaxes</a></span> or
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=begin.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._begin-for-syntax%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">begin-for-syntax</a></span> form. The <span class="RktSym">rhs</span> expression or set of
<span class="RktSym">forms</span> forms has its own <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span>, which is pushed before evaluating
<span class="RktSym">rhs</span> or the <span class="RktSym">forms</span>; the stack is restored after obtaining the result values.
The <span class="RktSym">max-let-depth</span> field indicates the maximum size of the
stack that will be created by <span class="RktSym">rhs</span> (not counting
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span>). The <span class="RktSym">dummy</span> variable is used to access the enclosing
namespace.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._req-dummy))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._req-reqs))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-req))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._req~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3areq))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._req))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._req%29%29" class="RktValDef RktValLink" data-pltdoc="x">req</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValLink" data-pltdoc="x">form</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">reqs</span><span class="stt"> </span><span class="RktSym">dummy</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-req%29%29" class="RktValLink" data-pltdoc="x">make-req</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">reqs</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._stx~3f%29%29" class="RktValLink" data-pltdoc="x">stx?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">dummy</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel~3f%29%29" class="RktValLink" data-pltdoc="x">toplevel?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a top-level <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=require.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._%7E23%7E25require%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">#%require</a></span> form (but not one in a
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=module.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._module%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">module</a></span> form) with a sequence of specifications <span class="RktSym">reqs</span>.
The <span class="RktSym">dummy</span> variable is used to access the top-level
namespace.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._seq-forms))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-seq))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._seq~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aseq))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._seq))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq%29%29" class="RktValDef RktValLink" data-pltdoc="x">seq</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValLink" data-pltdoc="x">form</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">forms</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-seq%29%29" class="RktValLink" data-pltdoc="x">make-seq</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">forms</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form~3f%29%29" class="RktValLink" data-pltdoc="x">form?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=begin.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._begin%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">begin</a></span> form, either as an expression or at the
top level (though the latter is more commonly a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._splice%29%29" class="RktValLink" data-pltdoc="x">splice</a></span> form).
When a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq%29%29" class="RktValLink" data-pltdoc="x">seq</a></span> appears in an expression position, its
<span class="RktSym">forms</span> are expressions.</div></p><p>After each form in <span class="RktSym">forms</span> is evaluated, the stack is restored
to its depth from before evaluating the form.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._splice-forms))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-splice))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._splice~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3asplice))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._splice))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._splice%29%29" class="RktValDef RktValLink" data-pltdoc="x">splice</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValLink" data-pltdoc="x">form</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">forms</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-splice%29%29" class="RktValLink" data-pltdoc="x">make-splice</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">forms</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form~3f%29%29" class="RktValLink" data-pltdoc="x">form?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a top-level <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=begin.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._begin%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">begin</a></span> form where each evaluation is
wrapped with a continuation prompt.</div></p><p>After each form in <span class="RktSym">forms</span> is evaluated, the stack is restored
to its depth from before evaluating the form.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._inline-variant-inline))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._inline-variant-direct))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-inline-variant))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._inline-variant~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3ainline-variant))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._inline-variant))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._inline-variant%29%29" class="RktValDef RktValLink" data-pltdoc="x">inline-variant</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValLink" data-pltdoc="x">form</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">direct</span><span class="stt"> </span><span class="RktSym">inline</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-inline-variant%29%29" class="RktValLink" data-pltdoc="x">make-inline-variant</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">direct</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">inline</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a function that is bound by <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._define-values%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">define-values</a></span>, where the
function has two variants.
The first variant is used for normal calls to the function. The second may
be used for cross-module inlining of the function.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><span class="nobreak"><a name="(def._((lib._compiler/zo-structs..rkt)._mod-post-submodules))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-pre-submodules))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-flags))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-internal-context))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-lang-info))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-dummy))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-max-let-depth))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-unexported))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-syntax-bodies))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-body))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-requires))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-provides))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-prefix))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-self-modidx))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-srcname))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-mod))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3amod))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mod))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mod%29%29" class="RktValDef RktValLink" data-pltdoc="x">mod</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValLink" data-pltdoc="x">form</a></span></span></td><td><span class="hspace"> </span><span class="RktPn">(</span></td><td><span class="nobreak"><span class="RktSym">name</span></span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">srcname</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">self-modidx</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">prefix</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">provides</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">requires</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">body</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">syntax-bodies</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">unexported</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">max-let-depth</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">dummy</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">lang-info</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">internal-context</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">flags</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">pre-submodules</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">post-submodules</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-mod%29%29" class="RktValLink" data-pltdoc="x">make-mod</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">srcname</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">self-modidx</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">prefix</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix~3f%29%29" class="RktValLink" data-pltdoc="x">prefix?</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td><span class="hspace"> </span></td><td><span class="RktSym">provides</span></td><td><span class="hspace"> </span></td><td>:</td><td><span class="hspace"> </span></td><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._list%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">list/c</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._provided~3f%29%29" class="RktValLink" data-pltdoc="x">provided?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._provided~3f%29%29" class="RktValLink" data-pltdoc="x">provided?</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td><span class="hspace"> </span></td><td><span class="RktSym">requires</span></td><td><span class="hspace"> </span></td><td>:</td><td><span class="hspace"> </span></td><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._cons%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">cons/c</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">body</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form~3f%29%29" class="RktValLink" data-pltdoc="x">form?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td><span class="hspace"> </span></td><td><span class="RktSym">syntax-bodies</span></td><td><span class="hspace"> </span></td><td>:</td><td><span class="hspace"> </span></td><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._cons%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">cons/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-positive-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-positive-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._def-syntaxes~3f%29%29" class="RktValLink" data-pltdoc="x">def-syntaxes?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq-for-syntax~3f%29%29" class="RktValLink" data-pltdoc="x">seq-for-syntax?</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td><span class="hspace"> </span></td><td><span class="RktSym">unexported</span></td><td><span class="hspace"> </span></td><td>:</td><td><span class="hspace"> </span></td><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._list%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">list/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">max-let-depth</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">dummy</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel~3f%29%29" class="RktValLink" data-pltdoc="x">toplevel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">lang-info</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fvector..rkt%2529._vector%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">vector/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">internal-context</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#t</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._stx~3f%29%29" class="RktValLink" data-pltdoc="x">stx?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fvector..rkt%2529._vectorof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">vectorof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._stx~3f%29%29" class="RktValLink" data-pltdoc="x">stx?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">flags</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">cross-phase</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">pre-submodules</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mod~3f%29%29" class="RktValLink" data-pltdoc="x">mod?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">post-submodules</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mod~3f%29%29" class="RktValLink" data-pltdoc="x">mod?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=module.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._module%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">module</a></span> declaration.</div></p><p>The <span class="RktSym">provides</span> and <span class="RktSym">requires</span> lists are each an
association list from phases to exports or imports. In the case of
<span class="RktSym">provides</span>, each phase maps to two lists: one for exported
variables, and another for exported syntax. In the case of
<span class="RktSym">requires</span>, each phase maps to a list of imported module paths.</p><p>The <span class="RktSym">body</span> field contains the module’s run-time (i.e., phase
0) code. The <span class="RktSym">syntax-bodies</span> list has a list of forms for
each higher phase in the module body; the phases are in order
starting with phase 1. The <span class="RktSym">body</span> forms use <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span>,
rather than any prefix in place for the module declaration itself,
while members of lists in <span class="RktSym">syntax-bodies</span> have their own
prefixes. After each form in <span class="RktSym">body</span> or <span class="RktSym">syntax-bodies</span>
is evaluated, the stack is restored to its depth from before
evaluating the form.</p><p>The <span class="RktSym">unexported</span> list contains lists of symbols for
unexported definitions that can be accessed through macro expansion
and that are implemented through the forms in <span class="RktSym">body</span> and
<span class="RktSym">syntax-bodies</span>. Each list in <span class="RktSym">unexported</span> starts
with a phase level.</p><p>The <span class="RktSym">max-let-depth</span> field indicates the maximum stack depth
created by <span class="RktSym">body</span> forms (not counting the <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span>
array). The <span class="RktSym">dummy</span> variable is used to access to the
top-level namespace.</p><p>The <span class="RktSym">lang-info</span> value specifies an optional module path that
provides information about the module’s implementation language.</p><p>The <span class="RktSym">internal-module-context</span> value describes the lexical
context of the body of the module. This value is used by
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Namespaces.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-%7E3enamespace%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module->namespace</a></span>. A <span class="RktVal">#f</span> value means that the
context is unavailable or empty. A <span class="RktVal">#t</span> value means that the
context is computed by re-importing all required modules. A
syntax-object value embeds an arbitrary lexical context.</p><p>The <span class="RktSym">flags</span> field records certain properties of the module.
The <span class="RktVal">'</span><span class="RktVal">cross-phase</span> flag indicates that the module body is
evaluated once and the results shared across instances for all phases; such a
module contains only definitions of functions, structure types, and
structure type properties.</p><p>The <span class="RktSym">pre-submodules</span> field records <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=module.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._module%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">module</a></span>-declared
submodules, while the <span class="RktSym">post-submodules</span> field records
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=module.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._module%252A%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">module*</a></span>-declared submodules.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._provided-protected~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._provided-src-phase))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._provided-nom-src))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._provided-src-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._provided-src))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._provided-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-provided))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._provided~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aprovided))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._provided))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._provided%29%29" class="RktValDef RktValLink" data-pltdoc="x">provided</a></span></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">name</span><span class="stt"> </span><span class="RktSym">src</span><span class="stt"> </span><span class="RktSym">src-name</span><span class="stt"> </span><span class="RktSym">nom-src</span><span class="stt"> </span><span class="RktSym">src-phase</span><span class="stt"> </span><span class="RktSym">protected?</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-provided%29%29" class="RktValLink" data-pltdoc="x">make-provided</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">src</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">src-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">nom-src</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">src-phase</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">protected?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Describes an individual provided identifier within a <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mod%29%29" class="RktValLink" data-pltdoc="x">mod</a></span>
instance.</div></p><h5 x-source-module="(lib "scribblings/raco/raco.scrbl")" x-part-tag=""Expressions"">7.4.3<tt> </tt><a name="(part._.Expressions)"></a>Expressions</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._make-expr))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._expr~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aexpr))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._expr))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValDef RktValLink" data-pltdoc="x">expr</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._form%29%29" class="RktValLink" data-pltdoc="x">form</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-expr%29%29" class="RktValLink" data-pltdoc="x">make-expr</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A supertype for all expression forms that can appear in compiled code,
except for literals that are represented as themselves and some
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq%29%29" class="RktValLink" data-pltdoc="x">seq</a></span> structures (which can appear as an expression as long as
it contains only other things that can be expressions).</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><span class="nobreak"><a name="(def._((lib._compiler/zo-structs..rkt)._lam-body))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam-max-let-depth))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam-toplevel-map))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam-closure-types))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam-closure-map))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam-rest~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam-param-types))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam-num-params))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam-flags))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-lam))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3alam))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lam))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._lam%29%29" class="RktValDef RktValLink" data-pltdoc="x">lam</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span></span></td><td><span class="hspace"> </span><span class="RktPn">(</span></td><td><span class="nobreak"><span class="RktSym">name</span></span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">flags</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">num-params</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">param-types</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">rest?</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">closure-map</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">closure-types</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">toplevel-map</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">max-let-depth</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">body</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-lam%29%29" class="RktValLink" data-pltdoc="x">make-lam</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=vectors.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._vector%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">vector?</a></span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td><span class="hspace"> </span></td><td><span class="RktSym">flags</span></td><td><span class="hspace"> </span></td><td>:</td><td><span class="hspace"> </span></td><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">preserves-marks</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">is-method</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">single-result</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">only-rest-arg-not-used</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">sfs-clear-rest-args</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">num-params</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">param-types</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">val</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">ref</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">flonum</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">fixnum</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">extflonum</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">rest?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">closure-map</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fvector..rkt%2529._vectorof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">vectorof</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">closure-types</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">val/ref</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">flonum</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">fixnum</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">extflonum</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">toplevel-map</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=sets.html%23%2528def._%2528%2528lib._racket%252Fset..rkt%2529._set%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">set/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">max-let-depth</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">body</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> form. The <span class="RktSym">name</span> field is a name
for debugging purposes. The <span class="RktSym">num-params</span> field indicates the
number of arguments accepted by the procedure, not counting a rest
argument; the <span class="RktSym">rest?</span> field indicates whether extra arguments
are accepted and collected into a “rest” variable. The
<span class="RktSym">param-types</span> list contains <span class="RktSym">num-params</span> symbols
indicating the type of each argumet, either <span class="RktVal">'</span><span class="RktVal">val</span> for a normal
argument, <span class="RktVal">'</span><span class="RktVal">ref</span> for a boxed argument (representing a mutable
local variable), <span class="RktVal">'</span><span class="RktVal">flonum</span> for a flonum argument,
or <span class="RktVal">'</span><span class="RktVal">extflonum</span> for an extflonum argument.</div></p><p>The
<span class="RktSym">closure-map</span> field is a vector of stack positions that are
captured when evaluating the <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> form to create a closure.
The <span class="RktSym">closure-types</span> field provides a corresponding list of
types, but no distinction is made between normal values and boxed
values; also, this information is redundant, since it can be inferred
by the bindings referenced though <span class="RktSym">closure-map</span>.</p><p>Which a closure captures top-level or module-level variables, they
are represented in the closure by capturing a prefix (in the sense
of <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span>). The <span class="RktSym">toplevel-map</span> field indicates
which top-level and lifted variables are actually used by the
closure (so that variables in a prefix can be pruned by the run-time
system if they become unused). A <span class="RktVal">#f</span> value indicates either
that no prefix is captured or all variables in the prefix should be
considered used. Otherwise, numbers in the set indicate which
variables and lifted variables are used. Variables are numbered
consecutively by position in the prefix starting from
<span class="RktVal">0</span>. Lifted variables are numbered immediately
afterward—<wbr></wbr>which means that, if the prefix contains any syntax
objects, lifted-variable numbers are shifted down relative to a
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel%29%29" class="RktValLink" data-pltdoc="x">toplevel</a></span> by the number of syntax object in the prefix plus
one (which makes the <span class="RktSym">toplevel-map</span> set more compact).</p><p>When the function is called, the rest-argument list (if any) is pushed
onto the stack, then the normal arguments in reverse order, then the
closure-captured values in reverse order. Thus, when <span class="RktSym">body</span> is
run, the first value on the stack is the first value captured by the
<span class="RktSym">closure-map</span> array, and so on.</p><p>The <span class="RktSym">max-let-depth</span> field indicates the maximum stack depth
created by <span class="RktSym">body</span> plus the arguments and closure-captured
values pushed onto the stack. The <span class="RktSym">body</span> field is the
expression for the closure’s body.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._closure-gen-id))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._closure-code))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-closure))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._closure~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aclosure))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._closure))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._closure%29%29" class="RktValDef RktValLink" data-pltdoc="x">closure</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">code</span><span class="stt"> </span><span class="RktSym">gen-id</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-closure%29%29" class="RktValLink" data-pltdoc="x">make-closure</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">code</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._lam~3f%29%29" class="RktValLink" data-pltdoc="x">lam?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">gen-id</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> form with an empty closure, which is a procedure
constant. The procedure constant can appear multiple times in the
graph of expressions for bytecode, and the <span class="RktSym">code</span> field can be
a cycle for a recursive constant procedure; the <span class="RktSym">gen-id</span> is
different for each such constant.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._case-lam-clauses))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._case-lam-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-case-lam))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._case-lam~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3acase-lam))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._case-lam))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._case-lam%29%29" class="RktValDef RktValLink" data-pltdoc="x">case-lam</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">name</span><span class="stt"> </span><span class="RktSym">clauses</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-case-lam%29%29" class="RktValLink" data-pltdoc="x">make-case-lam</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=vectors.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._vector%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">vector?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">clauses</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._lam~3f%29%29" class="RktValLink" data-pltdoc="x">lam?</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._case-lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">case-lambda</a></span> form as a combination of
<span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> forms that are tried (in order) based on the number of
arguments given.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._let-one-unused~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-one-type))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-one-body))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-one-rhs))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-let-one))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-one~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3alet-one))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-one))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._let-one%29%29" class="RktValDef RktValLink" data-pltdoc="x">let-one</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">rhs</span><span class="stt"> </span><span class="RktSym">body</span><span class="stt"> </span><span class="RktSym">type</span><span class="stt"> </span><span class="RktSym">unused?</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-let-one%29%29" class="RktValLink" data-pltdoc="x">make-let-one</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">rhs</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">body</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">type</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">flonum</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">fixnum</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">extflonum</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">unused?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Pushes an uninitialized slot onto the stack, evaluates <span class="RktSym">rhs</span>
and puts its value into the slot, and then runs <span class="RktSym">body</span>. If
<span class="RktSym">type</span> is not <span class="RktVal">#f</span>, then <span class="RktSym">rhs</span> must produce a
value of the corresponding type, and the slot must be accessed by <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._localref%29%29" class="RktValLink" data-pltdoc="x">localref</a></span>s that
expect the type. If <span class="RktSym">unused?</span> is <span class="RktVal">#t</span>, then the slot
must not be used, and the value of <span class="RktSym">rhs</span> is not actually pushed
onto the stack (but <span class="RktSym">rhs</span> is constrained to produce a single
value).</div></p><p>After <span class="RktSym">rhs</span> is evaluated, the stack is restored to its depth
from before evaluating <span class="RktSym">rhs</span>. Note that the new slot is
created before evaluating <span class="RktSym">rhs</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._let-void-body))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-void-boxes~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-void-count))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-let-void))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-void~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3alet-void))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-void))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._let-void%29%29" class="RktValDef RktValLink" data-pltdoc="x">let-void</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">count</span><span class="stt"> </span><span class="RktSym">boxes?</span><span class="stt"> </span><span class="RktSym">body</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-let-void%29%29" class="RktValLink" data-pltdoc="x">make-let-void</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">count</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">boxes?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">body</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Pushes <span class="RktSym">count</span> uninitialized slots onto the stack and then runs
<span class="RktSym">body</span>. If <span class="RktSym">boxes?</span> is <span class="RktVal">#t</span>, then the slots are
filled with boxes that contain <a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=guide&rel=void_undefined.html&version=6.1" class="RktModLink Sq" data-pltdoc="x"><span class="nobreak"><span class="RktRes">#<undefined></span></span></a>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._install-value-body))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._install-value-rhs))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._install-value-boxes~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._install-value-pos))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._install-value-count))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-install-value))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._install-value~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3ainstall-value))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._install-value))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._install-value%29%29" class="RktValDef RktValLink" data-pltdoc="x">install-value</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">count</span><span class="stt"> </span><span class="RktSym">pos</span><span class="stt"> </span><span class="RktSym">boxes?</span><span class="stt"> </span><span class="RktSym">rhs</span><span class="stt"> </span><span class="RktSym">body</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-install-value%29%29" class="RktValLink" data-pltdoc="x">make-install-value</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">count</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">pos</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">boxes?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">rhs</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">body</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Runs <span class="RktSym">rhs</span> to obtain <span class="RktSym">count</span> results, and installs them
into existing slots on the stack in order, skipping the first
<span class="RktSym">pos</span> stack positions. If <span class="RktSym">boxes?</span> is <span class="RktVal">#t</span>, then
the values are put into existing boxes in the stack slots.</div></p><p>After <span class="RktSym">rhs</span> is evaluated, the stack is restored to its depth
from before evaluating <span class="RktSym">rhs</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._let-rec-body))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-rec-procs))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-let-rec))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-rec~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3alet-rec))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._let-rec))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._let-rec%29%29" class="RktValDef RktValLink" data-pltdoc="x">let-rec</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">procs</span><span class="stt"> </span><span class="RktSym">body</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-let-rec%29%29" class="RktValLink" data-pltdoc="x">make-let-rec</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">procs</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._lam~3f%29%29" class="RktValLink" data-pltdoc="x">lam?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">body</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=let.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._letrec%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">letrec</a></span> form with <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> bindings. It
allocates a closure shell for each <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> form in
<span class="RktSym">procs</span>, installs each onto the stack in previously allocated
slots in reverse order (so that the closure shell for the last element
of <span class="RktSym">procs</span> is installed at stack position <span class="RktVal">0</span>), fills
out each shell’s closure (where each closure normally references some
other just-created closures, which is possible because the shells have
been installed on the stack), and then evaluates <span class="RktSym">body</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._boxenv-body))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._boxenv-pos))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-boxenv))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._boxenv~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aboxenv))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._boxenv))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._boxenv%29%29" class="RktValDef RktValLink" data-pltdoc="x">boxenv</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">pos</span><span class="stt"> </span><span class="RktSym">body</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-boxenv%29%29" class="RktValLink" data-pltdoc="x">make-boxenv</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">pos</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">body</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Skips <span class="RktSym">pos</span> elements of the stack, setting the slot afterward
to a new box containing the slot’s old value, and then runs
<span class="RktSym">body</span>. This form appears when a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span> argument is
mutated using <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=set_.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._set%2521%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">set!</a></span> within its body; calling the function
initially pushes the value directly on the stack, and this form boxes
the value so that it can be mutated later.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._localref-type))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._localref-other-clears~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._localref-clear~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._localref-pos))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._localref-unbox~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-localref))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._localref~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3alocalref))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._localref))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._localref%29%29" class="RktValDef RktValLink" data-pltdoc="x">localref</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">unbox?</span><span class="stt"> </span><span class="RktSym">pos</span><span class="stt"> </span><span class="RktSym">clear?</span><span class="stt"> </span><span class="RktSym">other-clears?</span><span class="stt"> </span><span class="RktSym">type</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-localref%29%29" class="RktValLink" data-pltdoc="x">make-localref</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">unbox?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">pos</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">clear?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">other-clears?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">type</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">flonum</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">fixnum</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">extflonum</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a local-variable reference; it accesses the value in the
stack slot after the first <span class="RktSym">pos</span> slots. If <span class="RktSym">unbox?</span> is
<span class="RktVal">#t</span>, the stack slot contains a box, and a value is extracted
from the box. If <span class="RktSym">clear?</span> is <span class="RktVal">#t</span>, then after the value
is obtained, the stack slot is cleared (to avoid retaining a reference
that can prevent reclamation of the value as garbage). If
<span class="RktSym">other-clears?</span> is <span class="RktVal">#t</span>, then some later reference to
the same stack slot may clear after reading. If <span class="RktSym">type</span> is
not <span class="RktVal">#f</span>, the slot is known to hold a specific type of value.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._toplevel-ready~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._toplevel-const~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._toplevel-pos))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._toplevel-depth))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-toplevel))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._toplevel~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3atoplevel))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._toplevel))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel%29%29" class="RktValDef RktValLink" data-pltdoc="x">toplevel</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">depth</span><span class="stt"> </span><span class="RktSym">pos</span><span class="stt"> </span><span class="RktSym">const?</span><span class="stt"> </span><span class="RktSym">ready?</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-toplevel%29%29" class="RktValLink" data-pltdoc="x">make-toplevel</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">depth</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">pos</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">const?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">ready?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a reference to a top-level or imported variable via the
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span> array. The <span class="RktSym">depth</span> field indicates the number
of stack slots to skip to reach the prefix array, and <span class="RktSym">pos</span> is
the offset into the array.</div></p><p>When the <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel%29%29" class="RktValLink" data-pltdoc="x">toplevel</a></span> is an expression, if both <span class="RktSym">const?</span>
and <span class="RktSym">ready?</span> are <span class="RktVal">#t</span>, then the variable definitely
will be defined, its value stays constant, and the constant is
effectively the same for every module instantiation. If only
<span class="RktSym">const?</span> is <span class="RktVal">#t</span>, then the value is constant, but it
may vary across instantiations. If only <span class="RktSym">ready?</span> is
<span class="RktVal">#t</span>, then the variable definitely will be defined, but its
value may change. If <span class="RktSym">const?</span> and <span class="RktSym">ready?</span> are both
<span class="RktVal">#f</span>, then a check is needed to determine whether the
variable is defined.</p><p>When the <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel%29%29" class="RktValLink" data-pltdoc="x">toplevel</a></span> is the right-hand side for
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._def-values%29%29" class="RktValLink" data-pltdoc="x">def-values</a></span>, then <span class="RktSym">const?</span> is <span class="RktVal">#f</span>. If
<span class="RktSym">ready?</span> is <span class="RktVal">#t</span>, the variable is marked as immutable
after it is defined.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._topsyntax-midpt))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._topsyntax-pos))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._topsyntax-depth))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-topsyntax))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._topsyntax~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3atopsyntax))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._topsyntax))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._topsyntax%29%29" class="RktValDef RktValLink" data-pltdoc="x">topsyntax</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">depth</span><span class="stt"> </span><span class="RktSym">pos</span><span class="stt"> </span><span class="RktSym">midpt</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-topsyntax%29%29" class="RktValLink" data-pltdoc="x">make-topsyntax</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">depth</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">pos</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">midpt</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a reference to a quoted syntax object via the
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._prefix%29%29" class="RktValLink" data-pltdoc="x">prefix</a></span> array. The <span class="RktSym">depth</span> field indicates the number
of stack slots to skip to reach the prefix array, and <span class="RktSym">pos</span> is
the offset into the array. The <span class="RktSym">midpt</span> value is used
internally for lazy calculation of syntax information.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._application-rands))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._application-rator))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-application))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._application~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aapplication))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._application))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._application%29%29" class="RktValDef RktValLink" data-pltdoc="x">application</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">rator</span><span class="stt"> </span><span class="RktSym">rands</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-application%29%29" class="RktValLink" data-pltdoc="x">make-application</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">rator</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">rands</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a function call. The <span class="RktSym">rator</span> field is the
expression for the function, and <span class="RktSym">rands</span> are the argument
expressions. Before any of the expressions are evaluated,
<span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=pairs.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._length%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">length</a></span><span class="stt"> </span><span class="RktSym">rands</span><span class="RktPn">)</span> uninitialized stack slots are created (to be
used as temporary space).</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._branch-else))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._branch-then))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._branch-test))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-branch))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._branch~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3abranch))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._branch))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._branch%29%29" class="RktValDef RktValLink" data-pltdoc="x">branch</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">test</span><span class="stt"> </span><span class="RktSym">then</span><span class="stt"> </span><span class="RktSym">else</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-branch%29%29" class="RktValLink" data-pltdoc="x">make-branch</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">test</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">then</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">else</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents an <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=if.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._if%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">if</a></span> form.</div></p><p>After <span class="RktSym">test</span> is evaluated, the stack is restored to its depth
from before evaluating <span class="RktSym">test</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._with-cont-mark-body))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._with-cont-mark-val))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._with-cont-mark-key))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-with-cont-mark))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._with-cont-mark~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3awith-cont-mark))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._with-cont-mark))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._with-cont-mark%29%29" class="RktValDef RktValLink" data-pltdoc="x">with-cont-mark</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">key</span><span class="stt"> </span><span class="RktSym">val</span><span class="stt"> </span><span class="RktSym">body</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-with-cont-mark%29%29" class="RktValLink" data-pltdoc="x">make-with-cont-mark</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">key</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">val</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">body</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=wcm.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._with-continuation-mark%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">with-continuation-mark</a></span> expression.</div></p><p>After each of <span class="RktSym">key</span> and <span class="RktSym">val</span> is evaluated, the stack is
restored to its depth from before evaluating <span class="RktSym">key</span> or
<span class="RktSym">val</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._beg0-seq))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-beg0))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._beg0~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3abeg0))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._beg0))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._beg0%29%29" class="RktValDef RktValLink" data-pltdoc="x">beg0</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">seq</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-beg0%29%29" class="RktValLink" data-pltdoc="x">make-beg0</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">seq</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=begin.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._begin0%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">begin0</a></span> expression.</div></p><p>After each expression in <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq%29%29" class="RktValLink" data-pltdoc="x">seq</a></span> is evaluated, the stack is
restored to its depth from before evaluating the expression.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._varref-dummy))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._varref-toplevel))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-varref))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._varref~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3avarref))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._varref))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._varref%29%29" class="RktValDef RktValLink" data-pltdoc="x">varref</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">toplevel</span><span class="stt"> </span><span class="RktSym">dummy</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-varref%29%29" class="RktValLink" data-pltdoc="x">make-varref</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">toplevel</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel~3f%29%29" class="RktValLink" data-pltdoc="x">toplevel?</a></span><span class="hspace"> </span><span class="RktVal">#t</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">dummy</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel~3f%29%29" class="RktValLink" data-pltdoc="x">toplevel?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Locations____variable-reference.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._%7E23%7E25variable-reference%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">#%variable-reference</a></span> form. The <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel%29%29" class="RktValLink" data-pltdoc="x">toplevel</a></span>
field is <span class="RktVal">#t</span> if the original reference was to a constant local
binding. The <span class="RktSym">dummy</span> field
accesses a variable bucket that strongly references its namespace (as
opposed to a normal variable bucket, which only weakly references its
namespace); it can be <span class="RktVal">#f</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._assign-undef-ok~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._assign-rhs))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._assign-id))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-assign))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._assign~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aassign))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._assign))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._assign%29%29" class="RktValDef RktValLink" data-pltdoc="x">assign</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">id</span><span class="stt"> </span><span class="RktSym">rhs</span><span class="stt"> </span><span class="RktSym">undef-ok?</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-assign%29%29" class="RktValLink" data-pltdoc="x">make-assign</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">id</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._toplevel~3f%29%29" class="RktValLink" data-pltdoc="x">toplevel?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">rhs</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">undef-ok?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=set_.html%23%2528form._%2528%2528quote._%7E23%7E25kernel%2529._set%2521%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">set!</a></span> expression that assigns to a top-level or
module-level variable. (Assignments to local variables are represented
by <span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._install-value%29%29" class="RktValLink" data-pltdoc="x">install-value</a></span> expressions.) If <span class="RktSym">undef-ok?</span> is true,
the assignment to <span class="RktSym">id</span> succeeds even if <span class="RktSym">id</span> was not
previously defined (see also <span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=eval.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._compile-allow-set%2521-undefined%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">compile-allow-set!-undefined</a></span>).</div></p><p>After <span class="RktSym">rhs</span> is evaluated, the stack is restored to its depth
from before evaluating <span class="RktSym">rhs</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._apply-values-args-expr))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._apply-values-proc))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-apply-values))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._apply-values~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aapply-values))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._apply-values))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._apply-values%29%29" class="RktValDef RktValLink" data-pltdoc="x">apply-values</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">proc</span><span class="stt"> </span><span class="RktSym">args-expr</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-apply-values%29%29" class="RktValLink" data-pltdoc="x">make-apply-values</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">proc</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">args-expr</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr~3f%29%29" class="RktValLink" data-pltdoc="x">expr?</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._seq~3f%29%29" class="RktValLink" data-pltdoc="x">seq?</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents <span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=values.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._call-with-values%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">call-with-values</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktSym">args-expr</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktSym">proc</span><span class="RktPn">)</span>,
which is handled specially by the run-time system.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._primval-id))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-primval))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._primval~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aprimval))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._primval))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._primval%29%29" class="RktValDef RktValLink" data-pltdoc="x">primval</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._expr%29%29" class="RktValLink" data-pltdoc="x">expr</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">id</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-primval%29%29" class="RktValLink" data-pltdoc="x">make-primval</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">id</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a direct reference to a variable imported from the run-time
kernel.</div></p><h5 x-source-module="(lib "scribblings/raco/raco.scrbl")" x-part-tag=""Syntax_Objects"">7.4.4<tt> </tt><a name="(part._.Syntax_.Objects)"></a>Syntax Objects</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._wrapped-tamper-status))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._wrapped-wraps))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._wrapped-datum))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-wrapped))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._wrapped~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3awrapped))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._wrapped))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrapped%29%29" class="RktValDef RktValLink" data-pltdoc="x">wrapped</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">datum</span><span class="stt"> </span><span class="RktSym">wraps</span><span class="stt"> </span><span class="RktSym">tamper-status</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-wrapped%29%29" class="RktValLink" data-pltdoc="x">make-wrapped</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">datum</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">wraps</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrap~3f%29%29" class="RktValLink" data-pltdoc="x">wrap?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">tamper-status</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">clean</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">armed</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">tainted</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a syntax object, where <span class="RktSym">wraps</span> contain the lexical
information and <span class="RktSym">tamper-status</span> is taint information. When the
<span class="RktSym">datum</span> part is itself compound, its pieces are wrapped, too.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._make-wrap))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._wrap~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3awrap))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._wrap))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrap%29%29" class="RktValDef RktValLink" data-pltdoc="x">wrap</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-wrap%29%29" class="RktValLink" data-pltdoc="x">make-wrap</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A supertype for lexical-information elements.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._top-level-rename-flag))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-top-level-rename))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._top-level-rename~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3atop-level-rename))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._top-level-rename))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._top-level-rename%29%29" class="RktValDef RktValLink" data-pltdoc="x">top-level-rename</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrap%29%29" class="RktValLink" data-pltdoc="x">wrap</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">flag</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-top-level-rename%29%29" class="RktValLink" data-pltdoc="x">make-top-level-rename</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">flag</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A top-level renaming.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._mark-barrier-value))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-mark-barrier))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mark-barrier~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3amark-barrier))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._mark-barrier))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._mark-barrier%29%29" class="RktValDef RktValLink" data-pltdoc="x">mark-barrier</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrap%29%29" class="RktValLink" data-pltdoc="x">wrap</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">value</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-mark-barrier%29%29" class="RktValLink" data-pltdoc="x">make-mark-barrier</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">value</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A mark barrier.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><span class="nobreak"><a name="(def._((lib._compiler/zo-structs..rkt)._free-id-info-use-current-inspector~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._free-id-info-phase2))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._free-id-info-phase1))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._free-id-info-phase0))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._free-id-info-symbol1))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._free-id-info-path1))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._free-id-info-symbol0))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._free-id-info-path0))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-free-id-info))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._free-id-info~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3afree-id-info))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._free-id-info))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._free-id-info%29%29" class="RktValDef RktValLink" data-pltdoc="x">free-id-info</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span></span></td><td><span class="hspace"> </span><span class="RktPn">(</span></td><td><span class="nobreak"><span class="RktSym">path0</span></span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">symbol0</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">path1</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">symbol1</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">phase0</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">phase1</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">phase2</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">use-current-inspector?</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-free-id-info%29%29" class="RktValLink" data-pltdoc="x">make-free-id-info</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">path0</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">symbol0</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">path1</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">symbol1</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">phase0</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">phase1</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">phase2</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">use-current-inspector?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Information about a free identifier.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._lexical-rename-alist))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lexical-rename-bool2))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lexical-rename-has-free-id-info~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-lexical-rename))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lexical-rename~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3alexical-rename))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._lexical-rename))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._lexical-rename%29%29" class="RktValDef RktValLink" data-pltdoc="x">lexical-rename</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrap%29%29" class="RktValLink" data-pltdoc="x">wrap</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">has-free-id-info?</span><span class="stt"> </span><span class="RktSym">bool2</span><span class="stt"> </span><span class="RktSym">alist</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-lexical-rename%29%29" class="RktValLink" data-pltdoc="x">make-lexical-rename</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">has-free-id-info?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">bool2</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td><span class="hspace"> </span></td><td><span class="RktSym">alist</span></td><td><span class="hspace"> </span></td><td>:</td><td><span class="hspace"> </span></td><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._cons%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">cons/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._cons%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">cons/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._cons%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">cons/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._free-id-info~3f%29%29" class="RktValLink" data-pltdoc="x">free-id-info?</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">A local-binding mapping from symbols to binding-set names.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._phase-shift-cancel-id))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phase-shift-dest))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phase-shift-src))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phase-shift-amt))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-phase-shift))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phase-shift~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aphase-shift))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phase-shift))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._phase-shift%29%29" class="RktValDef RktValLink" data-pltdoc="x">phase-shift</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrap%29%29" class="RktValLink" data-pltdoc="x">wrap</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">amt</span><span class="stt"> </span><span class="RktSym">src</span><span class="stt"> </span><span class="RktSym">dest</span><span class="stt"> </span><span class="RktSym">cancel-id</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-phase-shift%29%29" class="RktValLink" data-pltdoc="x">make-phase-shift</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">amt</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">src</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">dest</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">cancel-id</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Shifts module bindings later in the wrap set.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><span class="nobreak"><a name="(def._((lib._compiler/zo-structs..rkt)._module-rename-plus-kern~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-rename-mark-renames))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-rename-renames))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-rename-unmarshals))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-rename-set-id))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-rename-kind))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-rename-phase))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-module-rename))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-rename~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3amodule-rename))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-rename))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-rename%29%29" class="RktValDef RktValLink" data-pltdoc="x">module-rename</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._wrap%29%29" class="RktValLink" data-pltdoc="x">wrap</a></span></span></td><td><span class="hspace"> </span><span class="RktPn">(</span></td><td><span class="nobreak"><span class="RktSym">phase</span></span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">kind</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">set-id</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">unmarshals</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">renames</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">mark-renames</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">plus-kern?</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-module-rename%29%29" class="RktValLink" data-pltdoc="x">make-module-rename</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">phase</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">kind</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">marked</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">normal</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">set-id</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">unmarshals</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym">make-all-from-module?</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">renames</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-binding~3f%29%29" class="RktValLink" data-pltdoc="x">module-binding?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">mark-renames</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">plus-kern?</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a set of module and import bindings.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><span class="nobreak"><a name="(def._((lib._compiler/zo-structs..rkt)._all-from-module-context))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._all-from-module-prefix))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._all-from-module-exceptions))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._all-from-module-src-phase))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._all-from-module-phase))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._all-from-module-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-all-from-module))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._all-from-module~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aall-from-module))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._all-from-module))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._all-from-module%29%29" class="RktValDef RktValLink" data-pltdoc="x">all-from-module</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span></span></td><td><span class="hspace"> </span><span class="RktPn">(</span></td><td><span class="nobreak"><span class="RktSym">path</span></span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">phase</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">src-phase</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">exceptions</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">prefix</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">context</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-all-from-module%29%29" class="RktValLink" data-pltdoc="x">make-all-from-module</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">phase</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">src-phase</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">exceptions</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">prefix</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=symbols.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._symbol%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">symbol?</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td><span class="hspace"> </span></td><td><span class="RktSym">context</span></td><td><span class="hspace"> </span></td><td>:</td><td><span class="hspace"> </span></td><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fvector..rkt%2529._vector%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">vector/c</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._listof%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Represents a set of simple imports from one module within a
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-rename%29%29" class="RktValLink" data-pltdoc="x">module-rename</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._make-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-binding~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3amodule-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._module-binding))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-binding%29%29" class="RktValDef RktValLink" data-pltdoc="x">module-binding</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-module-binding%29%29" class="RktValLink" data-pltdoc="x">make-module-binding</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A supertype for module bindings.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._simple-module-binding-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-simple-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._simple-module-binding~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3asimple-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._simple-module-binding))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._simple-module-binding%29%29" class="RktValDef RktValLink" data-pltdoc="x">simple-module-binding</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-binding%29%29" class="RktValLink" data-pltdoc="x">module-binding</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">path</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-simple-module-binding%29%29" class="RktValLink" data-pltdoc="x">make-simple-module-binding</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a single identifier import within a
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-rename%29%29" class="RktValLink" data-pltdoc="x">module-rename</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><span class="nobreak"><a name="(def._((lib._compiler/zo-structs..rkt)._phased-module-binding-nominal-export-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phased-module-binding-nominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phased-module-binding-export-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phased-module-binding-phase))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phased-module-binding-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-phased-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phased-module-binding~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aphased-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phased-module-binding))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._phased-module-binding%29%29" class="RktValDef RktValLink" data-pltdoc="x">phased-module-binding</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-binding%29%29" class="RktValLink" data-pltdoc="x">module-binding</a></span></span></td><td><span class="hspace"> </span><span class="RktPn">(</span></td><td><span class="nobreak"><span class="RktSym">path</span></span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">phase</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">export-name</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">nominal-path</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">nominal-export-name</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-phased-module-binding%29%29" class="RktValLink" data-pltdoc="x">make-phased-module-binding</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">phase</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">export-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">nominal-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._nominal-path~3f%29%29" class="RktValLink" data-pltdoc="x">nominal-path?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">nominal-export-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a single identifier import within a
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-rename%29%29" class="RktValLink" data-pltdoc="x">module-rename</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><span class="nobreak"><a name="(def._((lib._compiler/zo-structs..rkt)._exported-nominal-module-binding-nominal-export-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._exported-nominal-module-binding-nominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._exported-nominal-module-binding-export-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._exported-nominal-module-binding-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-exported-nominal-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._exported-nominal-module-binding~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aexported-nominal-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._exported-nominal-module-binding))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._exported-nominal-module-binding%29%29" class="RktValDef RktValLink" data-pltdoc="x">exported-nominal-module-binding</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-binding%29%29" class="RktValLink" data-pltdoc="x">module-binding</a></span></span></td><td><span class="hspace"> </span><span class="RktPn">(</span></td><td><span class="nobreak"><span class="RktSym">path</span></span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">export-name</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">nominal-path</span></td></tr><tr><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="hspace"> </span></td><td><span class="RktSym">nominal-export-name</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-exported-nominal-module-binding%29%29" class="RktValLink" data-pltdoc="x">make-exported-nominal-module-binding</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">export-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">nominal-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._nominal-path~3f%29%29" class="RktValLink" data-pltdoc="x">nominal-path?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">nominal-export-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a single identifier import within a
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-rename%29%29" class="RktValLink" data-pltdoc="x">module-rename</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._nominal-module-binding-nominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._nominal-module-binding-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-nominal-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._nominal-module-binding~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3anominal-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._nominal-module-binding))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._nominal-module-binding%29%29" class="RktValDef RktValLink" data-pltdoc="x">nominal-module-binding</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-binding%29%29" class="RktValLink" data-pltdoc="x">module-binding</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">path</span><span class="stt"> </span><span class="RktSym">nominal-path</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-nominal-module-binding%29%29" class="RktValLink" data-pltdoc="x">make-nominal-module-binding</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">nominal-path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._nominal-path~3f%29%29" class="RktValLink" data-pltdoc="x">nominal-path?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a single identifier import within a
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-rename%29%29" class="RktValLink" data-pltdoc="x">module-rename</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._exported-module-binding-export-name))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._exported-module-binding-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-exported-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._exported-module-binding~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aexported-module-binding))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._exported-module-binding))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._exported-module-binding%29%29" class="RktValDef RktValLink" data-pltdoc="x">exported-module-binding</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-binding%29%29" class="RktValLink" data-pltdoc="x">module-binding</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">path</span><span class="stt"> </span><span class="RktSym">export-name</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-exported-module-binding%29%29" class="RktValLink" data-pltdoc="x">make-exported-module-binding</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">path</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">export-name</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a single identifier import within a
<span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._module-rename%29%29" class="RktValLink" data-pltdoc="x">module-rename</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._make-nominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._nominal-path~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3anominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._nominal-path))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._nominal-path%29%29" class="RktValDef RktValLink" data-pltdoc="x">nominal-path</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._zo%29%29" class="RktValLink" data-pltdoc="x">zo</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-nominal-path%29%29" class="RktValLink" data-pltdoc="x">make-nominal-path</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A supertype for nominal paths.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._simple-nominal-path-value))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-simple-nominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._simple-nominal-path~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3asimple-nominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._simple-nominal-path))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._simple-nominal-path%29%29" class="RktValDef RktValLink" data-pltdoc="x">simple-nominal-path</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._nominal-path%29%29" class="RktValLink" data-pltdoc="x">nominal-path</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">value</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-simple-nominal-path%29%29" class="RktValLink" data-pltdoc="x">make-simple-nominal-path</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">value</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a simple nominal path.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._imported-nominal-path-import-phase))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._imported-nominal-path-value))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-imported-nominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._imported-nominal-path~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aimported-nominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._imported-nominal-path))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._imported-nominal-path%29%29" class="RktValDef RktValLink" data-pltdoc="x">imported-nominal-path</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._nominal-path%29%29" class="RktValLink" data-pltdoc="x">nominal-path</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">value</span><span class="stt"> </span><span class="RktSym">import-phase</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-imported-nominal-path%29%29" class="RktValLink" data-pltdoc="x">make-imported-nominal-path</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">value</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">import-phase</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents an imported nominal path.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>struct</p></div></div><table cellspacing="0" cellpadding="0" class="RForeground"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=define-struct.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._struct%2529%2529&version=6.1" class="RktStxLink Sq" data-pltdoc="x">struct</a></span></td><td><span class="hspace"> </span></td><td><a name="(def._((lib._compiler/zo-structs..rkt)._phased-nominal-path-phase))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phased-nominal-path-import-phase))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phased-nominal-path-value))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._make-phased-nominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phased-nominal-path~3f))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._struct~3aphased-nominal-path))"></a><a name="(def._((lib._compiler/zo-structs..rkt)._phased-nominal-path))"></a><span title="Provided from: compiler/zo-structs | Package: compiler-lib"><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._phased-nominal-path%29%29" class="RktValDef RktValLink" data-pltdoc="x">phased-nominal-path</a></span></span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._nominal-path%29%29" class="RktValLink" data-pltdoc="x">nominal-path</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">value</span><span class="stt"> </span><span class="RktSym">import-phase</span><span class="stt"> </span><span class="RktSym">phase</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:extra-constructor-name</span><span class="hspace"> </span><span class="RktSym"><a href="#%28def._%28%28lib._compiler%2Fzo-structs..rkt%29._make-phased-nominal-path%29%29" class="RktValLink" data-pltdoc="x">make-phased-nominal-path</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">#:prefab</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">value</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._module-path-index%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">module-path-index?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">import-phase</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="RktSym">phase</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="http://download.racket-lang.org/docs/6.1/html/local-redirect/index.html?doc=reference&rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-integer%7E3f%2529%2529&version=6.1" class="RktValLink Sq" data-pltdoc="x">exact-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Represents a phased nominal path.</div></p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, "6.1", "../");" onfocus="this.style.color="black"; this.style.textAlign="left"; if (this.value == "...search manuals...") this.value="";" onblur="if (this.value.match(/^ *$/)) { this.style.color="#888"; this.style.textAlign="center"; this.value="...search manuals..."; }"/></form> <a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot("6.1");">top</a></span><span class="navright"> <a href="xref.html" title="backward to "6.12 API for Cross-References for Installed Manuals"" data-pltdoc="x">← prev</a> <a href="index.html" title="up to "raco: Racket Command-Line Tools"" data-pltdoc="x">up</a> <a href="demod.html" title="forward to "8 raco demod: Demodularizing Programs"" data-pltdoc="x">next →</a></span> </div></div></div><div id="contextindicator"> </div></body></html>
|