emacs.d/clones/scheme/docs.racket-lang.org/reference/linklets.html
2022-09-30 11:00:09 +02:00

247 lines
No EOL
174 KiB
HTML

<!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"/><meta name="viewport" content="width=device-width, initial-scale=0.8"/><title>14.14&nbsp;Linklets and the Core Compiler</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="extras.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="../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="../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,&quot;tocview_0&quot;);">&#9658;</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">The Racket Reference</a></td></tr></table></div><div class="tocviewsublisttop" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="model.html" class="tocviewlink" data-pltdoc="x">Language Model</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="notation.html" class="tocviewlink" data-pltdoc="x">Notation for Documentation</a></td></tr><tr><td align="right">3&nbsp;</td><td><a href="syntax.html" class="tocviewlink" data-pltdoc="x">Syntactic Forms</a></td></tr><tr><td align="right">4&nbsp;</td><td><a href="data.html" class="tocviewlink" data-pltdoc="x">Datatypes</a></td></tr><tr><td align="right">5&nbsp;</td><td><a href="structures.html" class="tocviewlink" data-pltdoc="x">Structures</a></td></tr><tr><td align="right">6&nbsp;</td><td><a href="mzlib_class.html" class="tocviewlink" data-pltdoc="x">Classes and Objects</a></td></tr><tr><td align="right">7&nbsp;</td><td><a href="mzlib_unit.html" class="tocviewlink" data-pltdoc="x">Units</a></td></tr><tr><td align="right">8&nbsp;</td><td><a href="contracts.html" class="tocviewlink" data-pltdoc="x">Contracts</a></td></tr><tr><td align="right">9&nbsp;</td><td><a href="match.html" class="tocviewlink" data-pltdoc="x">Pattern Matching</a></td></tr><tr><td align="right">10&nbsp;</td><td><a href="control.html" class="tocviewlink" data-pltdoc="x">Control Flow</a></td></tr><tr><td align="right">11&nbsp;</td><td><a href="concurrency.html" class="tocviewlink" data-pltdoc="x">Concurrency and Parallelism</a></td></tr><tr><td align="right">12&nbsp;</td><td><a href="Macros.html" class="tocviewlink" data-pltdoc="x">Macros</a></td></tr><tr><td align="right">13&nbsp;</td><td><a href="input-and-output.html" class="tocviewlink" data-pltdoc="x">Input and Output</a></td></tr><tr><td align="right">14&nbsp;</td><td><a href="security.html" class="tocviewselflink" data-pltdoc="x">Reflection and Security</a></td></tr><tr><td align="right">15&nbsp;</td><td><a href="os.html" class="tocviewlink" data-pltdoc="x">Operating System</a></td></tr><tr><td align="right">16&nbsp;</td><td><a href="memory.html" class="tocviewlink" data-pltdoc="x">Memory Management</a></td></tr><tr><td align="right">17&nbsp;</td><td><a href="unsafe.html" class="tocviewlink" data-pltdoc="x">Unsafe Operations</a></td></tr><tr><td align="right">18&nbsp;</td><td><a href="running.html" class="tocviewlink" data-pltdoc="x">Running Racket</a></td></tr><tr><td align="right"></td><td><a href="doc-bibliography.html" class="tocviewlink" data-pltdoc="x">Bibliography</a></td></tr><tr><td align="right"></td><td><a href="doc-index.html" class="tocviewlink" data-pltdoc="x">Index</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,&quot;tocview_1&quot;);">&#9660;</a></td><td>14&nbsp;</td><td><a href="security.html" class="tocviewlink" data-pltdoc="x">Reflection and Security</a></td></tr></table><div class="tocviewsublistbottom" style="display: block;" id="tocview_1"><table cellspacing="0" cellpadding="0"><tr><td align="right">14.1&nbsp;</td><td><a href="Namespaces.html" class="tocviewlink" data-pltdoc="x">Namespaces</a></td></tr><tr><td align="right">14.2&nbsp;</td><td><a href="eval.html" class="tocviewlink" data-pltdoc="x">Evaluation and Compilation</a></td></tr><tr><td align="right">14.3&nbsp;</td><td><a href="load-lang.html" class="tocviewlink" data-pltdoc="x">The <span class="RktModLink"><span class="RktSym">racket/<span class="mywbr"> &nbsp;</span>load</span></span> Language</a></td></tr><tr><td align="right">14.4&nbsp;</td><td><a href="Module_Names_and_Loading.html" class="tocviewlink" data-pltdoc="x">Module Names and Loading</a></td></tr><tr><td align="right">14.5&nbsp;</td><td><a href="chaperones.html" class="tocviewlink" data-pltdoc="x">Impersonators and Chaperones</a></td></tr><tr><td align="right">14.6&nbsp;</td><td><a href="securityguards.html" class="tocviewlink" data-pltdoc="x">Security Guards</a></td></tr><tr><td align="right">14.7&nbsp;</td><td><a href="custodians.html" class="tocviewlink" data-pltdoc="x">Custodians</a></td></tr><tr><td align="right">14.8&nbsp;</td><td><a href="threadgroups.html" class="tocviewlink" data-pltdoc="x">Thread Groups</a></td></tr><tr><td align="right">14.9&nbsp;</td><td><a href="inspectors.html" class="tocviewlink" data-pltdoc="x">Structure Inspectors</a></td></tr><tr><td align="right">14.10&nbsp;</td><td><a href="modprotect.html" class="tocviewlink" data-pltdoc="x">Code Inspectors</a></td></tr><tr><td align="right">14.11&nbsp;</td><td><a href="plumbers.html" class="tocviewlink" data-pltdoc="x">Plumbers</a></td></tr><tr><td align="right">14.12&nbsp;</td><td><a href="Sandboxed_Evaluation.html" class="tocviewlink" data-pltdoc="x">Sandboxed Evaluation</a></td></tr><tr><td align="right">14.13&nbsp;</td><td><a href="repl-module.html" class="tocviewlink" data-pltdoc="x">The <span class="RktModLink"><span class="RktSym">racket/<span class="mywbr"> &nbsp;</span>repl</span></span> Library</a></td></tr><tr><td align="right">14.14&nbsp;</td><td><a href="linklets.html" class="tocviewselflink" data-pltdoc="x">Linklets and the Core Compiler</a></td></tr></table></div></div></div><div class="tocsub"><div class="tocsubtitle">On this page:</div><table class="tocsublist" cellspacing="0"><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">linklet?</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._compile-linklet%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">compile-<wbr></wbr>linklet</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._recompile-linklet%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">recompile-<wbr></wbr>linklet</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._eval-linklet%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">eval-<wbr></wbr>linklet</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instantiate-linklet%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">instantiate-<wbr></wbr>linklet</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-import-variables%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">linklet-<wbr></wbr>import-<wbr></wbr>variables</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-export-variables%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">linklet-<wbr></wbr>export-<wbr></wbr>variables</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-directory~3f%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">linklet-<wbr></wbr>directory?</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._hash-~3elinklet-directory%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">hash-<wbr></wbr>&gt;linklet-<wbr></wbr>directory</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-directory-~3ehash%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">linklet-<wbr></wbr>directory-<wbr></wbr>&gt;hash</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-bundle~3f%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">linklet-<wbr></wbr>bundle?</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._hash-~3elinklet-bundle%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">hash-<wbr></wbr>&gt;linklet-<wbr></wbr>bundle</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-bundle-~3ehash%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">linklet-<wbr></wbr>bundle-<wbr></wbr>&gt;hash</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-body-reserved-symbol~3f%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">linklet-<wbr></wbr>body-<wbr></wbr>reserved-<wbr></wbr>symbol?</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">instance?</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._make-instance%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">make-<wbr></wbr>instance</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-name%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">instance-<wbr></wbr>name</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-data%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">instance-<wbr></wbr>data</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-variable-names%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">instance-<wbr></wbr>variable-<wbr></wbr>names</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-variable-value%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">instance-<wbr></wbr>variable-<wbr></wbr>value</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-set-variable-value%21%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">instance-<wbr></wbr>set-<wbr></wbr>variable-<wbr></wbr>value!</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-unset-variable%21%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">instance-<wbr></wbr>unset-<wbr></wbr>variable!</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-describe-variable%21%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym">instance-<wbr></wbr>describe-<wbr></wbr>variable!</span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._variable-reference-~3einstance%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">variable-<wbr></wbr>reference-<wbr></wbr>&gt;instance</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correlated?</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-source%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correlated-<wbr></wbr>source</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-line%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correlated-<wbr></wbr>line</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-column%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correlated-<wbr></wbr>column</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-position%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correlated-<wbr></wbr>position</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-span%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correlated-<wbr></wbr>span</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-e%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correlated-<wbr></wbr>e</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-~3edatum%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correlated-<wbr></wbr>&gt;datum</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._datum-~3ecorrelated%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">datum-<wbr></wbr>&gt;correlated</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-property%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correlated-<wbr></wbr>property</span></span></a></td></tr><tr><td><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-property-symbol-keys%29%29" class="tocsublink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">correlated-<wbr></wbr>property-<wbr></wbr>symbol-<wbr></wbr>keys</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" id="searchbox" type="text" tabindex="1" placeholder="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;8.6&quot;, &quot;../&quot;);"/></form>&nbsp;&nbsp;<a href="https://docs.racket-lang.org/index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;8.6&quot;);">top</a><span class="tocsettoggle">&nbsp;&nbsp;<a href="javascript:void(0);" title="show/hide table of contents" onclick="TocsetToggle();">contents</a></span></span><span class="navright">&nbsp;&nbsp;<a href="repl-module.html" title="backward to &quot;14.13 The racket/repl Library&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="security.html" title="up to &quot;14 Reflection and Security&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="os.html" title="forward to &quot;15 Operating System&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div><h4 x-source-module="(lib &quot;scribblings/reference/reference.scrbl&quot;)" x-source-pkg="racket-doc" x-part-tag="&quot;linklets&quot;">14.14<tt>&nbsp;</tt><a name="(part._linklets)"></a><a name="(mod-path._racket/linklet)"></a>Linklets and the Core Compiler</h4><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._require%29%29" class="RktStxLink" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="linklets.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/linklet</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <a href="https://pkgs.racket-lang.org/package/base" title="Install this package using `raco pkg install base`"><span class="stt">base</span></a></span></td></tr></table></p><p>A <a name="(tech._linklet)"></a><span style="font-style: italic">linklet</span> is a primitive element of compilation, bytecode
marshaling, and evaluation. Racket&rsquo;s implementations of modules,
macros, and top-level evaluation are all built on linklets. Racket
programmers generally do not encounter linklets directly, but the
<a href="linklets.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/linklet</span></a> library provides access to linklet
facilities.</p><p>A single Racket module (or collection of top-level forms) is typically
implemented by multiple linklets. For example, each phase of
evaluation that exists in a module is implemented in a separate
linklet. A linklet is also used for metadata such as the <a href="Module_Names_and_Loading.html#%28tech._module._path._index%29" class="techoutside" data-pltdoc="x"><span class="techinside">module
path index</span></a>es for a module&rsquo;s <span class="RktSym"><a href="require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._require%29%29" class="RktStxLink" data-pltdoc="x">require</a></span>s. These linklets, plus
some other metadata, are combined to form a <a name="(tech._linklet._bundle)"></a><span style="font-style: italic">linklet bundle</span>.
Information in a <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundle</span></a> is keyed by either a symbol or
a <a href="numbers.html#%28tech._fixnum%29" class="techoutside" data-pltdoc="x"><span class="techinside">fixnum</span></a>. A <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundle</span></a> containing
<a href="linklets.html#%28tech._linklet%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet</span></a>s can be marshaled to and from a byte stream by
<span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._write%29%29" class="RktValLink" data-pltdoc="x">write</a></span> and (with <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read-accept-compiled%29%29" class="RktValLink" data-pltdoc="x">read-accept-compiled</a></span> is enabled)
<span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span>.</p><p>When a Racket module has submodules, the <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundles</span></a> for
the module and the submodules are grouped together in a
<a name="(tech._linklet._directory)"></a><span style="font-style: italic">linklet directory</span>. A <a href="linklets.html#%28tech._linklet._directory%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet directory</span></a> can have
nested linklet directories. Information in a linklet directory is
keyed by <span class="RktVal">#f</span> or a symbol, where <span class="RktVal">#f</span> must be mapped to
a <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundle</span></a> (if anything) and each symbol must be mapped
to a <a href="linklets.html#%28tech._linklet._directory%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet directory</span></a>. A <a href="linklets.html#%28tech._linklet._directory%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet directory</span></a> can be
equivalently viewed as a mapping from a lists of symbols to a
<a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundle</span></a>. Like <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundles</span></a>, a <a href="linklets.html#%28tech._linklet._directory%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet
directory</span></a> can be marshaled to and from a byte stream by
<span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._write%29%29" class="RktValLink" data-pltdoc="x">write</a></span> and <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</a></span>; the marshaled form allows individual
<a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundles</span></a> to be loaded independently.</p><p>A linklet consists of a set of variable definitions and expressions,
an exported subset of the defined variable names, a set of variables to export
from the linklet despite having no corresponding definition, and a set
of imports that provide other variables for the linklet to use. To run
a linklet, it is instantiated as as <a name="(tech._linklet._instance)"></a><span style="font-style: italic">linklet instance</span> (or
just <span style="font-style: italic">instance</span>, for short). When a linklet is instantiated,
it receives other <a href="linklets.html#%28tech._linklet._instance%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet instances</span></a> for its imports, and it
extracts a specified set of variables that are exported from each of
the given instances. The newly created <a href="linklets.html#%28tech._linklet._instance%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet instance</span></a>
provides its exported variables for use by other linklets or for
direct access via <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-variable-value%29%29" class="RktValLink" data-pltdoc="x">instance-variable-value</a></span>. A <a href="linklets.html#%28tech._linklet._instance%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet
instance</span></a> can be synthesized directly with <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._make-instance%29%29" class="RktValLink" data-pltdoc="x">make-instance</a></span>.</p><p>A linklet is created by compiling an enriched S-expression
representation of its source. Since linklets exist below the layer of
macros and syntax objects, linklet compilation does not use
<a href="syntax-model.html#%28tech._syntax._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">syntax objects</span></a>. Instead, linklet compilation uses
<a name="(tech._correlated._object)"></a><span style="font-style: italic">correlated objects</span>, which are like <a href="syntax-model.html#%28tech._syntax._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">syntax objects</span></a>
without lexical-context information and without the constraint that
content is coerced to correlated objects. Using an S-expression or
<a href="linklets.html#%28tech._correlated._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">correlated object</span></a>, the grammar of a linklet as recognized by
<span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._compile-linklet%29%29" class="RktValLink" data-pltdoc="x">compile-linklet</a></span> is</p><blockquote class="leftindent"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym">linklet</span><span class="hspace">&nbsp;</span><span class="RktPn">[</span><span class="RktPn">[</span><span class="RktVar">imported-id/renamed</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">]</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">[</span><span class="RktVar">exported-id/renamed</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">defn-or-expr</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><span class="stt">&nbsp;</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="specgrammar"><tr><td align="right" valign="baseline"><span class="RktVar">imported-id/renamed</span></td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="center" valign="baseline">=</td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="RktVar">imported-id</span></td></tr><tr><td align="right" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktVar">external-imported-id</span><span class="hspace">&nbsp;</span><span class="RktVar">internal-imported-id</span><span class="RktPn">)</span></td></tr><tr><td align="right" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="center" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td></tr><tr><td align="right" valign="baseline"><span class="RktVar">exported-id/renamed</span></td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="center" valign="baseline">=</td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="RktVar">exported-id</span></td></tr><tr><td align="right" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt">&nbsp;</span></td><td align="left" valign="baseline"><span class="RktPn">(</span><span class="RktVar">internal-exported-id</span><span class="hspace">&nbsp;</span><span class="RktVar">external-exported-id</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></blockquote><p>Each import set <span class="RktPn">[</span><span class="RktVar">imported-id/renamed</span><span class="stt"> </span><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span><span class="RktPn">]</span> refers to a single
imported instance, and each <span class="RktVar">import-id/renamed</span> corresponds to
a variable from that instance. If separate
<span class="RktVar">external-imported-id</span> and <span class="RktVar">internal-imported-id</span> are
specified, then <span class="RktVar">external-imported-id</span> is the name of the
variable as exported by the instance, and
<span class="RktVar">internal-imported-id</span> is the name used to refer to the
variable in the <span class="RktVar">defn-or-expr</span>s. For exports, separate
<span class="RktVar">internal-exported-id</span> and <span class="RktVar">external-exported-id</span>
names corresponds to the variable name as exported as referenced
in the <span class="RktVar">defn-or-expr</span>s, respectively.</p><p>The grammar of an <span class="RktVar">defn-or-expr</span> is similar to the expander&rsquo;s
grammar of fully expanded expressions (see <a href="syntax-model.html#%28part._fully-expanded%29" data-pltdoc="x">Fully Expanded Programs</a>)
with some exceptions: <span class="RktSym"><a href="Syntax_Quoting__quote-syntax.html#%28form._%28%28quote._~23~25kernel%29._quote-syntax%29%29" class="RktStxLink" data-pltdoc="x">quote-syntax</a></span> and <span class="RktSym"><a href="__top.html#%28form._%28%28quote._~23~25kernel%29._~23~25top%29%29" class="RktStxLink" data-pltdoc="x">#%top</a></span> are not allowed;
<span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._~23~25plain-lambda%29%29" class="RktStxLink" data-pltdoc="x">#%plain-lambda</a></span> is spelled <span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span>;
<span class="RktSym"><a href="application.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._~23~25plain-app%29%29" class="RktStxLink" data-pltdoc="x">#%plain-app</a></span> is omitted (i.e., application is implicit);
<span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span>, <span class="RktSym"><a href="lambda.html#%28form._%28%28quote._~23~25kernel%29._case-lambda%29%29" class="RktStxLink" data-pltdoc="x">case-lambda</a></span>, <span class="RktSym"><a href="let.html#%28form._%28%28quote._~23~25kernel%29._let-values%29%29" class="RktStxLink" data-pltdoc="x">let-values</a></span>, and
<span class="RktSym"><a href="let.html#%28form._%28%28quote._~23~25kernel%29._letrec-values%29%29" class="RktStxLink" data-pltdoc="x">letrec-values</a></span> can have only a single body expression; and
numbers, booleans, strings, and byte strings are self-quoting.
Primitives are accessed directly by name, and shadowing is not allowed
within a <span class="RktSym">linklet</span> form for primitive names (see
<span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-body-reserved-symbol~3f%29%29" class="RktValLink" data-pltdoc="x">linklet-body-reserved-symbol?</a></span>), imported variables, defined
variables, or local variables.</p><p>When an <span class="RktVar">exported-id/renamed</span> has no corresponding definition
among the <span class="RktVar">defn-or-expr</span>s, then the variable is effectively
defined as uninitialized; referencing the variable will trigger
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract~3avariable%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract:variable</a></span>, the same as referencing a
variable before it is defined. When a target instance is provided to
<span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instantiate-linklet%29%29" class="RktValLink" data-pltdoc="x">instantiate-linklet</a></span>, any existing variable with the same name
will be left as-is, instead of set to undefined. This treatment of
uninitialized variables provides core support for top-level evaluation
where variables may be referenced and then defined in a separate
element of compilation.</p><p class="SHistory">Added in version 6.90.0.1 of package <span class="stt">base</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._racket/linklet..rkt)._linklet~3f))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">linklet?</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> is a <a href="linklets.html#%28tech._linklet%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet</span></a>, <span class="RktVal">#f</span>
otherwise.</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><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._compile-linklet))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._compile-linklet%29%29" class="RktValDef RktValLink" data-pltdoc="x">compile-linklet</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">form</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">import-keys</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">get-import</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">options</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">form</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">import-keys</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">get-import</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">options</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">serializable</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unsafe</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">static</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">quick</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktVal">'</span><span class="RktVal">use-prompt</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">uninterned-literal</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">=</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">serializable</span><span class="RktVal">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="RktPn">(</span><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._compile-linklet%29%29" class="RktValDef RktValLink" data-pltdoc="x">compile-linklet</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">form</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">import-keys</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">get-import</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">options</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0"><tr><td><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector~3f%29%29" class="RktValLink" data-pltdoc="x">vector?</a></span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">form</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">import-keys</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector~3f%29%29" class="RktValLink" data-pltdoc="x">vector?</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">get-import</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="values.html#%28def._%28%28quote._~23~25kernel%29._values%29%29" class="RktValLink" data-pltdoc="x">values</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector~3f%29%29" class="RktValLink" data-pltdoc="x">vector?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">=</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVal">#f</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">options</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">serializable</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unsafe</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">static</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">quick</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktVal">'</span><span class="RktVal">use-prompt</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">uninterned-literal</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">=</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">serializable</span><span class="RktVal">)</span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Takes an S-expression or <a href="linklets.html#%28tech._correlated._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">correlated object</span></a> for a
<span class="RktSym">linklet</span> form and produces a <a href="linklets.html#%28tech._linklet%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet</span></a>.
As long as <span class="RktVal">'</span><span class="RktVal">serializable</span> included in <span class="RktVar">options</span>, the
resulting linklet can be marshaled to and from a byte stream when it is
part of a <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundle</span></a> (possibly in a <a href="linklets.html#%28tech._linklet._directory%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet directory</span></a>).</div></p><p>The optional <span class="RktVar">name</span> is associated to the linklet for debugging
purposes and as the default name of the linklet&rsquo;s instance.</p><p>The optional <span class="RktVar">import-keys</span> and <span class="RktVar">get-import</span> arguments
support cross-linklet optimization. If <span class="RktVar">import-keys</span> is a
vector, it must have as many elements as sets of imports in
<span class="RktVar">form</span>. If the compiler becomes interested in optimizing a
reference to an imported variable, it passes back to
<span class="RktVar">get-import</span> (if non-<span class="RktVal">#f</span>) the element of <span class="RktVar">import-keys</span> that
corresponds to the variable&rsquo;s import set. The <span class="RktVar">get-import</span>
function can then return a linklet or instance that represents an instance to be
provided to the compiled linklet when it is eventually instantiated;
ensuring consistency between reported linklet or instance and the eventual
instance is up to the caller of <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._compile-linklet%29%29" class="RktValLink" data-pltdoc="x">compile-linklet</a></span>. If
<span class="RktVar">get-import</span> returns <span class="RktVal">#f</span> as its first value, the
compiler will be prevented from making any assumptions about the
imported instance. The second result from <span class="RktVar">get-import</span> is an
optional vector of keys to provide transitive information on a
returned linklet&rsquo;s imports (and is not allowed for a returned instance);
the returned vector must have the same
number of elements as the linklet has imports. When vector elements
are <span class="RktSym"><a href="Equality.html#%28def._%28%28quote._~23~25kernel%29._eq~3f%29%29" class="RktValLink" data-pltdoc="x">eq?</a></span> and non-<span class="RktVal">#f</span>, the compiler can assume that
they correspond to the same run-time instance. A <span class="RktVal">#f</span>
value for <span class="RktVar">get-import</span> is equivalent to a function that
always returns two <span class="RktVal">#f</span> results.</p><p>When <span class="RktVar">import-keys</span> is not <span class="RktVal">#f</span>, then the compiler is
allowed to grow or shrink the set of imported instances for the
linklet. The result vector specifies the keys of the imports for the
returned linklet. Any key that is <span class="RktVal">#f</span> or a <a href="linklets.html#%28tech._linklet._instance%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet instance</span></a>
must be preserved intact, however.</p><p>If <span class="RktVal">'</span><span class="RktVal">unsafe</span> is included in <span class="RktVar">options</span>, then the linklet
is compiled in <a name="(tech._unsafe._mode)"></a><span style="font-style: italic">unsafe mode</span>: uses of safe operations within
the linklet can be converted to unsafe operations on the assumption
that the relevant contracts are satisfied. For example, <span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._car%29%29" class="RktValLink" data-pltdoc="x">car</a></span>
is converted to <span class="RktSym"><a href="unsafe.html#%28def._%28%28lib._racket%2Funsafe%2Fops..rkt%29._unsafe-car%29%29" class="RktValLink" data-pltdoc="x">unsafe-car</a></span>. Some substituted unsafe
operations may not have directly accessible names, such as the unsafe
variant of <span class="RktSym"><a href="sequences.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._in-list%29%29" class="RktValLink" data-pltdoc="x">in-list</a></span> that can be substituted in <a href="linklets.html#%28tech._unsafe._mode%29" class="techoutside" data-pltdoc="x"><span class="techinside">unsafe
mode</span></a>. An unsafe operation is substituted only if its (unchecked)
contract is subsumed by the safe operation&rsquo;s contract. The fact that
the linklet is compiled in <a href="linklets.html#%28tech._unsafe._mode%29" class="techoutside" data-pltdoc="x"><span class="techinside">unsafe mode</span></a> can be exposed through
<span class="RktSym"><a href="Namespaces.html#%28def._%28%28quote._~23~25kernel%29._variable-reference-from-unsafe~3f%29%29" class="RktValLink" data-pltdoc="x">variable-reference-from-unsafe?</a></span> using a variable reference
produced by a <span class="RktSym"><a href="Locations____variable-reference.html#%28form._%28%28quote._~23~25kernel%29._~23~25variable-reference%29%29" class="RktStxLink" data-pltdoc="x">#%variable-reference</a></span> form within the module
body.</p><p>If <span class="RktVal">'</span><span class="RktVal">static</span> is included in <span class="RktVar">options</span>, then the linklet
must be instantiated only once; if the linklet is serialized, then any
individual instance read from the serialized form must be instantiated
at most once. Compilation with <span class="RktVal">'</span><span class="RktVal">static</span> is intended to improve
the performance of references within the linklet to defined and
imported variables.</p><p>If <span class="RktVal">'</span><span class="RktVal">quick</span> is included in <span class="RktVar">options</span>, then linklet
compilation may trade run-time performance for compile-time
performance&#8212;<wbr></wbr>that is, spend less time compiling the linklet, but the
resulting linklet may run more slowly.</p><p>If <span class="RktVal">'</span><span class="RktVal">use-prompt</span> is included in <span class="RktVar">options</span>, then
instantiating resulting linklet always wraps a prompt around each
definition and immediate expression in the linklet. Otherwise,
supplying <span class="RktVal">#t</span> as the <span class="RktVar">use-prompt?</span> argument to
<span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instantiate-linklet%29%29" class="RktValLink" data-pltdoc="x">instantiate-linklet</a></span> may only wrap a prompt around the entire
instantiation.</p><p>If <span class="RktVal">'</span><span class="RktVal">uninterned-literal</span> is included in <span class="RktVar">options</span>, then
literals in <span class="RktVar">form</span> will not necessarily be interned via
<span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._datum-intern-literal%29%29" class="RktValLink" data-pltdoc="x">datum-intern-literal</a></span> when compiling or loading the linklet.
Disabling the use of <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._datum-intern-literal%29%29" class="RktValLink" data-pltdoc="x">datum-intern-literal</a></span> can be especially
useful of the linklet includes a large string or byte string constant
that is not meant to be shared.</p><p>The symbols in <span class="RktVar">options</span> must be distinct, otherwise
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception is raised.</p><p class="SHistory">Changed in version 7.1.0.8 of package <span class="stt">base</span>: Added the <span class="RktVal">'</span><span class="RktVal">use-prompt</span> option.<br/>Changed in version 7.1.0.10: Added the <span class="RktVal">'</span><span class="RktVal">uninterned-literal</span> option.<br/>Changed in version 7.5.0.14: Added the <span class="RktVal">'</span><span class="RktVal">quick</span> option.</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><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._recompile-linklet))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._recompile-linklet%29%29" class="RktValDef RktValLink" data-pltdoc="x">recompile-linklet</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">linklet</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">import-keys</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">get-import</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">options</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">linklet</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">import-keys</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">get-import</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">options</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">serializable</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unsafe</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">static</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">quick</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktVal">'</span><span class="RktVal">use-prompt</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">uninterned-literal</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">=</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">serializable</span><span class="RktVal">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="RktPn">(</span><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._recompile-linklet%29%29" class="RktValDef RktValLink" data-pltdoc="x">recompile-linklet</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">linklet</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">import-keys</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">get-import</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">options</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0"><tr><td><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td><td><span class="hspace">&nbsp;</span></td><td><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector~3f%29%29" class="RktValLink" data-pltdoc="x">vector?</a></span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">linklet</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">import-keys</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector~3f%29%29" class="RktValLink" data-pltdoc="x">vector?</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">get-import</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="values.html#%28def._%28%28quote._~23~25kernel%29._values%29%29" class="RktValLink" data-pltdoc="x">values</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector~3f%29%29" class="RktValLink" data-pltdoc="x">vector?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">=</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">import-key</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="values.html#%28def._%28%28quote._~23~25kernel%29._values%29%29" class="RktValLink" data-pltdoc="x">values</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">options</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">serializable</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unsafe</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">static</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">quick</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktVal">'</span><span class="RktVal">use-prompt</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">uninterned-literal</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">=</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">serializable</span><span class="RktVal">)</span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._compile-linklet%29%29" class="RktValLink" data-pltdoc="x">compile-linklet</a></span>, but takes an already-compiled linklet
and potentially optimizes it further.</div></p><p class="SHistory">Changed in version 7.1.0.6 of package <span class="stt">base</span>: Added the <span class="RktVar">options</span> argument.<br/>Changed in version 7.1.0.8: Added the <span class="RktVal">'</span><span class="RktVal">use-prompt</span> option.<br/>Changed in version 7.1.0.10: Added the <span class="RktVal">'</span><span class="RktVal">uninterned-literal</span> option.<br/>Changed in version 7.5.0.14: Added the <span class="RktVal">'</span><span class="RktVal">quick</span> option.</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._racket/linklet..rkt)._eval-linklet))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._eval-linklet%29%29" class="RktValDef RktValLink" data-pltdoc="x">eval-linklet</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">linklet</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">linklet</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a variant of a <span class="RktVar">linklet</span> that is prepared for JIT
compilation such that every later use of the result linklet with
<span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instantiate-linklet%29%29" class="RktValLink" data-pltdoc="x">instantiate-linklet</a></span> shares the JIT-generated code. However,
the result of <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._eval-linklet%29%29" class="RktValLink" data-pltdoc="x">eval-linklet</a></span> cannot be marshaled to a byte
stream as part of a <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundle</span></a>, and it cannot be used with
<span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._recompile-linklet%29%29" class="RktValLink" data-pltdoc="x">recompile-linklet</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>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._instantiate-linklet))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instantiate-linklet%29%29" class="RktValDef RktValLink" data-pltdoc="x">instantiate-linklet</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">linklet</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">import-instances</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">target-instance?</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">use-prompt?</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">linklet</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">import-instances</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">target-instance?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">use-prompt?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#t</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="prototype"><tr><td valign="top"><span class="RktPn">(</span><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instantiate-linklet%29%29" class="RktValDef RktValLink" data-pltdoc="x">instantiate-linklet</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">linklet</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">import-instances</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">target-instance</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">use-prompt?</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></td></tr></table></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">linklet</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">import-instances</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">target-instance</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">use-prompt?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#t</span></td></tr></table></blockquote></div><div class="SIntrapara">Instantiates <span class="RktVar">linklet</span> by running its definitions and
expressions, using the given <span class="RktVar">import-instances</span> for its
imports. The number of instances in <span class="RktVar">import-instances</span> must
match the number of import sets in <span class="RktVar">linklet</span>.</div></p><p>If <span class="RktVar">target-instance</span> is <span class="RktVal">#f</span> or not provided, the result
is a fresh instance for the linklet. If <span class="RktVar">target-instance</span> is an
instance, then the instance is used and modified for the linklet
definitions and expressions, and the result is the value of the last
expression in the linklet.</p><p>The linklet&rsquo;s exported variables are accessible in the result instance
or in <span class="RktVar">target-instance</span> using the linklet&rsquo;s external name for
each export. If <span class="RktVar">target-instance</span> is provided as
non-<span class="RktVal">#f</span>, its existing variables remain intact if they are not
modified by a linklet definition.</p><p>If <span class="RktVar">use-prompt?</span> is true, then a a <a href="eval-model.html#%28tech._prompt%29" class="techoutside" data-pltdoc="x"><span class="techinside">prompt</span></a> is wrapped
around the linklet instantiation in same ways as an expression in a
module body. If the linklet contains multiple definitions or immediate
expressions, then a prompt may or may not be wrapped around each
definition or expression; supply <span class="RktVal">'</span><span class="RktVal">use-prompt</span> to
<span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._compile-linklet%29%29" class="RktValLink" data-pltdoc="x">compile-linklet</a></span> to ensure that a prompt is used around each
definition and 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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._linklet-import-variables))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-import-variables%29%29" class="RktValDef RktValLink" data-pltdoc="x">linklet-import-variables</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">linklet</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">linklet</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a description of a linklet&rsquo;s imports. Each element of the
result list corresponds to an import set as satisfied by a single
instance on instantiation, and each member of the set is a variable
name that is used from the corresponding imported instance.</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._racket/linklet..rkt)._linklet-export-variables))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-export-variables%29%29" class="RktValDef RktValLink" data-pltdoc="x">linklet-export-variables</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">linklet</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">linklet</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet~3f%29%29" class="RktValLink" data-pltdoc="x">linklet?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a description of a linklet&rsquo;s exports. Each element of the list
corresponds to a variable that is made available by the linklet in its
instance.</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._racket/linklet..rkt)._linklet-directory~3f))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-directory~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">linklet-directory?</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> is a <a href="linklets.html#%28tech._linklet._directory%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet directory</span></a>,
<span class="RktVal">#f</span> otherwise.</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._racket/linklet..rkt)._hash-~3elinklet-directory))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._hash-~3elinklet-directory%29%29" class="RktValDef RktValLink" data-pltdoc="x">hash-&gt;linklet-directory</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">content</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-directory~3f%29%29" class="RktValLink" data-pltdoc="x">linklet-directory?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">content</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._and%2Fc%29%29" class="RktValLink" data-pltdoc="x">and/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._hash~3f%29%29" class="RktValLink" data-pltdoc="x">hash?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._hash-eq~3f%29%29" class="RktValLink" data-pltdoc="x">hash-eq?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._immutable~3f%29%29" class="RktValLink" data-pltdoc="x">immutable?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._not%2Fc%29%29" class="RktValLink" data-pltdoc="x">not/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="chaperones.html#%28def._%28%28quote._~23~25kernel%29._impersonator~3f%29%29" class="RktValLink" data-pltdoc="x">impersonator?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs a <a href="linklets.html#%28tech._linklet._directory%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet directory</span></a> given mappings in the form of a
<a href="hashtables.html#%28tech._hash._table%29" class="techoutside" data-pltdoc="x"><span class="techinside">hash table</span></a>. Each key of <span class="RktVar">content</span> must be either a
symbol or <span class="RktVal">#f</span>, each symbol must be mapped to a <a href="linklets.html#%28tech._linklet._directory%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet
directory</span></a>, and <span class="RktVal">#f</span> must be mapped to a <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundle</span></a>
or not mapped.</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._racket/linklet..rkt)._linklet-directory-~3ehash))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-directory-~3ehash%29%29" class="RktValDef RktValLink" data-pltdoc="x">linklet-directory-&gt;hash</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">linklet-directory</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._and%2Fc%29%29" class="RktValLink" data-pltdoc="x">and/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._hash~3f%29%29" class="RktValLink" data-pltdoc="x">hash?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._hash-eq~3f%29%29" class="RktValLink" data-pltdoc="x">hash-eq?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._immutable~3f%29%29" class="RktValLink" data-pltdoc="x">immutable?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._not%2Fc%29%29" class="RktValLink" data-pltdoc="x">not/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="chaperones.html#%28def._%28%28quote._~23~25kernel%29._impersonator~3f%29%29" class="RktValLink" data-pltdoc="x">impersonator?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">linklet-directory</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-directory~3f%29%29" class="RktValLink" data-pltdoc="x">linklet-directory?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Extracts the content of a <a href="linklets.html#%28tech._linklet._directory%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet directory</span></a> into a <a href="hashtables.html#%28tech._hash._table%29" class="techoutside" data-pltdoc="x"><span class="techinside">hash
table</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._linklet-bundle~3f))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-bundle~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">linklet-bundle?</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> is a <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundle</span></a>,
<span class="RktVal">#f</span> otherwise.</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._racket/linklet..rkt)._hash-~3elinklet-bundle))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._hash-~3elinklet-bundle%29%29" class="RktValDef RktValLink" data-pltdoc="x">hash-&gt;linklet-bundle</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">content</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-bundle~3f%29%29" class="RktValLink" data-pltdoc="x">linklet-bundle?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">content</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._and%2Fc%29%29" class="RktValLink" data-pltdoc="x">and/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._hash~3f%29%29" class="RktValLink" data-pltdoc="x">hash?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._hash-eq~3f%29%29" class="RktValLink" data-pltdoc="x">hash-eq?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._immutable~3f%29%29" class="RktValLink" data-pltdoc="x">immutable?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._not%2Fc%29%29" class="RktValLink" data-pltdoc="x">not/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="chaperones.html#%28def._%28%28quote._~23~25kernel%29._impersonator~3f%29%29" class="RktValLink" data-pltdoc="x">impersonator?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs a <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundle</span></a> given mappings in the form of a
<a href="hashtables.html#%28tech._hash._table%29" class="techoutside" data-pltdoc="x"><span class="techinside">hash table</span></a>. Each key of <span class="RktVar">content</span> must be either a
symbol or a <a href="numbers.html#%28tech._fixnum%29" class="techoutside" data-pltdoc="x"><span class="techinside">fixnum</span></a>. Values in the hash table are unconstrained,
but the intent is that they are all <a href="linklets.html#%28tech._linklet%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklets</span></a> or values that can
be recovered from <span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._write%29%29" class="RktValLink" data-pltdoc="x">write</a></span> output by <span class="RktSym"><a href="Reading.html#%28def._%28%28quote._~23~25kernel%29._read%29%29" class="RktValLink" data-pltdoc="x">read</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._linklet-bundle-~3ehash))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-bundle-~3ehash%29%29" class="RktValDef RktValLink" data-pltdoc="x">linklet-bundle-&gt;hash</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">linklet-bundle</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._and%2Fc%29%29" class="RktValLink" data-pltdoc="x">and/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._hash~3f%29%29" class="RktValLink" data-pltdoc="x">hash?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._hash-eq~3f%29%29" class="RktValLink" data-pltdoc="x">hash-eq?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._immutable~3f%29%29" class="RktValLink" data-pltdoc="x">immutable?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._not%2Fc%29%29" class="RktValLink" data-pltdoc="x">not/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="chaperones.html#%28def._%28%28quote._~23~25kernel%29._impersonator~3f%29%29" class="RktValLink" data-pltdoc="x">impersonator?</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">linklet-bundle</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-bundle~3f%29%29" class="RktValLink" data-pltdoc="x">linklet-bundle?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Extracts the content of a <a href="linklets.html#%28tech._linklet._bundle%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet bundle</span></a> into a <a href="hashtables.html#%28tech._hash._table%29" class="techoutside" data-pltdoc="x"><span class="techinside">hash
table</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._linklet-body-reserved-symbol~3f))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._linklet-body-reserved-symbol~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">linklet-body-reserved-symbol?</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">sym</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">sym</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Return <span class="RktVal">#t</span> if <span class="RktVar">sym</span> is a primitive name or other
identifier that is not allowed as a binding within a linklet,
<span class="RktVal">#f</span> otherwise.</div></p><p class="SHistory">Added in version 8.2.0.1 of package <span class="stt">base</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._racket/linklet..rkt)._instance~3f))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">instance?</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> is a <a href="linklets.html#%28tech._linklet._instance%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet instance</span></a>,
<span class="RktVal">#f</span> otherwise.</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><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._make-instance))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._make-instance%29%29" class="RktValDef RktValLink" data-pltdoc="x">make-instance</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">data</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">mode</span><span class="RktOpt">]</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">variable-name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">variable-value</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktMeta">...</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">data</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">mode</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">constant</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">consistent</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">variable-name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">variable-value</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Constructs a <a href="linklets.html#%28tech._linklet._instance%29" class="techoutside" data-pltdoc="x"><span class="techinside">linklet instance</span></a> directly. Besides associating an
arbitrary <span class="RktVar">name</span> and <span class="RktVar">data</span> value to the instance, the
instance is populated with variables as specified by
<span class="RktVar">variable-name</span> and <span class="RktVar">variable-value</span>.</div></p><p>The optional <span class="RktVar">data</span> and <span class="RktVar">mode</span> arguments must be
provided if any <span class="RktVar">variable-name</span> and <span class="RktVar">variable-value</span>
arguments are provided. The <span class="RktVar">mode</span> argument is used as in
<span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-set-variable-value%21%29%29" class="RktValLink" data-pltdoc="x">instance-set-variable-value!</a></span> for every
<span class="RktVar">variable-name</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._racket/linklet..rkt)._instance-name))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-name%29%29" class="RktValDef RktValLink" data-pltdoc="x">instance-name</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">instance</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">instance</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the value associated to <span class="RktVar">instance</span> as its name&#8212;<wbr></wbr>either
the first value provided to <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._make-instance%29%29" class="RktValLink" data-pltdoc="x">make-instance</a></span> or the name of a
linklet that was instantiated to create the instance.</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._racket/linklet..rkt)._instance-data))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-data%29%29" class="RktValDef RktValLink" data-pltdoc="x">instance-data</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">instance</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">instance</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the value associated to <span class="RktVar">instance</span> as its data&#8212;<wbr></wbr>either
the second value provided to <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._make-instance%29%29" class="RktValLink" data-pltdoc="x">make-instance</a></span> or the default
<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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._instance-variable-names))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-variable-names%29%29" class="RktValDef RktValLink" data-pltdoc="x">instance-variable-names</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">instance</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._list%29%29" class="RktValLink" data-pltdoc="x">list</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">instance</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a list of all names for all variables accessible from
<span class="RktVar">instance</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><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._instance-variable-value))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-variable-value%29%29" class="RktValDef RktValLink" data-pltdoc="x">instance-variable-value</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">instance</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">fail-k</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">instance</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">fail-k</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span><span class="hspace">&nbsp;</span><span class="RktSym">....</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the value of the variable exported as <span class="RktVar">name</span> from
<span class="RktVar">instance</span>. If no such variable is exported, then
<span class="RktVar">fail-k</span> is used in the same way as by <span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._hash-ref%29%29" class="RktValLink" data-pltdoc="x">hash-ref</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>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._instance-set-variable-value!))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-set-variable-value%21%29%29" class="RktValDef RktValLink" data-pltdoc="x">instance-set-variable-value!</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">instance</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">v</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">mode</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">instance</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">mode</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">constant</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">consistent</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Sets or creates the variable exported as <span class="RktVar">name</span> in
<span class="RktVar">instance</span> so that its value is <span class="RktVar">v</span>, as long as the
variable does not exist already as constant. If a variable for
<span class="RktVar">name</span> exists as constant, the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception is raised.</div></p><p>If <span class="RktVar">mode</span> is <span class="RktVal">'</span><span class="RktVal">constant</span> or <span class="RktVal">'</span><span class="RktVal">consistent</span>, then
the variable is created or changed to be constant. Furthermore, when
the instance is reported for a linklet&rsquo;s import though a
<span class="RktVar">get-import</span> callback to <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._compile-linklet%29%29" class="RktValLink" data-pltdoc="x">compile-linklet</a></span>, the
compiler can assume that the variable will be constant in all future
instances that are used to satisfy a linklet&rsquo;s imports.</p><p>If <span class="RktVar">mode</span> is <span class="RktVal">'</span><span class="RktVal">consistent</span>, when the instance is
reported though a callback to <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._compile-linklet%29%29" class="RktValLink" data-pltdoc="x">compile-linklet</a></span>, the compiler
can further assume that the variable&rsquo;s value will be the same for
future instances. For compilation purposes, &ldquo;the same&rdquo; can mean that
a procedure value will have the same arity and implementation details,
a <a href="structures.html#%28tech._structure._type%29" class="techoutside" data-pltdoc="x"><span class="techinside">structure type</span></a> value will have the same configuration, a
marshalable constant will be <span class="RktSym"><a href="Equality.html#%28def._%28%28quote._~23~25kernel%29._equal~3f%29%29" class="RktValLink" data-pltdoc="x">equal?</a></span> to the current value, and
so on.</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._racket/linklet..rkt)._instance-unset-variable!))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance-unset-variable%21%29%29" class="RktValDef RktValLink" data-pltdoc="x">instance-unset-variable!</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">instance</span><span class="hspace">&nbsp;</span><span class="RktVar">name</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">instance</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Changes <span class="RktVar">instance</span> so that it does not export a variable as
<span class="RktVar">name</span>, as long as <span class="RktVar">name</span> does not exist as a constant
variable. If a variable for <span class="RktVar">name</span> exists as constant, the
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception is raised.</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><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._instance-describe-variable!))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">instance-describe-variable!</span></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">instance</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">name</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">desc-v</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">&rarr;</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">instance</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">desc-v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Registers information about <span class="RktVar">name</span> in <span class="RktVar">instance</span> that
may be useful for compiling linklets where the instance is return via
the <span class="RktVar">get-import</span> callback to <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._compile-linklet%29%29" class="RktValLink" data-pltdoc="x">compile-linklet</a></span>. The
<span class="RktVar">desc-v</span> description can be any value; the recognized
descriptions depend on virtual machine, but may include the following:</div></p><ul><li><p><span class="RktVal">`</span><span class="RktVal">(</span><span class="RktVal">procedure</span><span class="stt"> </span><span class="RktRdr">,</span><span class="RktSym">arity-mask</span><span class="RktVal">)</span> &#8212;<wbr></wbr> the value is always a
procedure that is not impersonated and not a structure, and its
arity in the style of <span class="RktSym"><a href="procedures.html#%28def._%28%28quote._~23~25kernel%29._procedure-arity-mask%29%29" class="RktValLink" data-pltdoc="x">procedure-arity-mask</a></span> is
<span class="RktSym">arity-mask</span>.</p></li><li><p><span class="RktVal">`</span><span class="RktVal">(</span><span class="RktVal">procedure/succeeds</span><span class="stt"> </span><span class="RktRdr">,</span><span class="RktSym">arity-mask</span><span class="RktVal">)</span> &#8212;<wbr></wbr> like
<span class="RktVal">`</span><span class="RktVal">(</span><span class="RktVal">procedure</span><span class="stt"> </span><span class="RktRdr">,</span><span class="RktSym">arity-mask</span><span class="RktVal">)</span>, but for a procedure that
never raises an exception of otherwise captures or escapes the
calling context.</p></li><li><p><span class="RktVal">`</span><span class="RktVal">(</span><span class="RktVal">procedure/pure</span><span class="stt"> </span><span class="RktRdr">,</span><span class="RktSym">arity-mask</span><span class="RktVal">)</span> &#8212;<wbr></wbr> like
<span class="RktVal">`</span><span class="RktVal">(</span><span class="RktVal">procedure/succeeds</span><span class="stt"> </span><span class="RktRdr">,</span><span class="RktSym">arity-mask</span><span class="RktVal">)</span>, but with no
observable side effects, so a call to the procedure can be
reordered.</p></li></ul><p class="SHistory">Added in version 7.1.0.8 of package <span class="stt">base</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><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._variable-reference-~3einstance))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._variable-reference-~3einstance%29%29" class="RktValDef RktValLink" data-pltdoc="x">variable-reference-&gt;instance</a></span></span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVar">varref</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">ref-site?</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace">&nbsp;</span></td></tr></table></blockquote></td></tr><tr><td><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="if.html#%28form._%28%28quote._~23~25kernel%29._if%29%29" class="RktStxLink" data-pltdoc="x">if</a></span><span class="hspace">&nbsp;</span><span class="RktVar">ref-site?</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="symbols.html#%28def._%28%28quote._~23~25kernel%29._symbol~3f%29%29" class="RktValLink" data-pltdoc="x">symbol?</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._instance~3f%29%29" class="RktValLink" data-pltdoc="x">instance?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">varref</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="Namespaces.html#%28def._%28%28quote._~23~25kernel%29._variable-reference~3f%29%29" class="RktValLink" data-pltdoc="x">variable-reference?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">ref-site?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr></table></blockquote></div><div class="SIntrapara">Extracts the instance where the variable of <span class="RktVar">varref</span> is defined
if <span class="RktVar">ref-site?</span> is <span class="RktVal">#f</span>, and returns the instance where
<span class="RktVar">varref</span> itself resides if <span class="RktVar">ref-site?</span> is true. This
notion of <a href="Locations____variable-reference.html#%28tech._variable._reference%29" class="techoutside" data-pltdoc="x"><span class="techinside">variable reference</span></a> is the same as at the module level
and can reflect the linklet instance that implements a particular
phase of a module instance.</div></p><p>When <span class="RktVar">ref-site?</span> is <span class="RktVal">#f</span>, the result is <span class="RktVal">#f</span> when
<span class="RktVar">varref</span> is from <span class="RktPn">(</span><span class="RktSym"><a href="Locations____variable-reference.html#%28form._%28%28quote._~23~25kernel%29._~23~25variable-reference%29%29" class="RktStxLink" data-pltdoc="x">#%variable-reference</a></span><span class="RktPn">)</span> with no
identifier. The result is a symbol if <span class="RktVar">varref</span> refers to a
primitive.</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._correlated~3f))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated?</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._correlated-source))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-source%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated-source</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">crlt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._correlated-line))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-line%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated-line</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">crlt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-positive-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-positive-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._correlated-column))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-column%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated-column</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">crlt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._correlated-position))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-position%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated-position</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">crlt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-positive-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-positive-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._correlated-span))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-span%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated-span</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">crlt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._correlated-e))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-e%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated-e</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">crlt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._correlated-~3edatum))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-~3edatum%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated-&gt;datum</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">crlt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._datum-~3ecorrelated))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._datum-~3ecorrelated%29%29" class="RktValDef RktValLink" data-pltdoc="x">datum-&gt;correlated</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span><span class="RktOpt">[</span><span class="RktVar">srcloc</span><span class="hspace">&nbsp;</span><span class="RktVar">prop</span><span class="RktOpt">]</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">v</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">srcloc</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._list%2Fc%29%29" class="RktValLink" data-pltdoc="x">list/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-positive-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-positive-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-positive-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-positive-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fvector..rkt%29._vector%2Fc%29%29" class="RktValLink" data-pltdoc="x">vector/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-positive-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-positive-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-positive-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-positive-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="number-types.html#%28def._%28%28quote._~23~25kernel%29._exact-nonnegative-integer~3f%29%29" class="RktValLink" data-pltdoc="x">exact-nonnegative-integer?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">=</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><span class="RktVal">#f</span></td></tr></table></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">prop</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktVal">#f</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._correlated-property))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-property%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated-property</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span><span class="RktVar">key</span><span class="hspace">&nbsp;</span><span class="RktVar">val</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">key</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">val</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-property%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated-property</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span><span class="RktVar">key</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">key</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</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>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/linklet..rkt)._correlated-property-symbol-keys))"></a><span title="Provided from: racket/linklet | Package: base"><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-property-symbol-keys%29%29" class="RktValDef RktValLink" data-pltdoc="x">correlated-property-symbol-keys</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">crlt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._list~3f%29%29" class="RktValLink" data-pltdoc="x">list?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">crlt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated~3f%29%29" class="RktValLink" data-pltdoc="x">correlated?</a></span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax~3f%29%29" class="RktValLink" data-pltdoc="x">syntax?</a></span>, <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax-source%29%29" class="RktValLink" data-pltdoc="x">syntax-source</a></span>, <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax-line%29%29" class="RktValLink" data-pltdoc="x">syntax-line</a></span>,
<span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax-column%29%29" class="RktValLink" data-pltdoc="x">syntax-column</a></span>, <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax-position%29%29" class="RktValLink" data-pltdoc="x">syntax-position</a></span>,
<span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax-span%29%29" class="RktValLink" data-pltdoc="x">syntax-span</a></span>, <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax-e%29%29" class="RktValLink" data-pltdoc="x">syntax-e</a></span>, <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._syntax-~3edatum%29%29" class="RktValLink" data-pltdoc="x">syntax-&gt;datum</a></span>,
<span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._datum-~3esyntax%29%29" class="RktValLink" data-pltdoc="x">datum-&gt;syntax</a></span>, <span class="RktSym"><a href="stxprops.html#%28def._%28%28quote._~23~25kernel%29._syntax-property%29%29" class="RktValLink" data-pltdoc="x">syntax-property</a></span>, and
<span class="RktSym"><a href="stxprops.html#%28def._%28%28quote._~23~25kernel%29._syntax-property-symbol-keys%29%29" class="RktValLink" data-pltdoc="x">syntax-property-symbol-keys</a></span>, but for <a href="linklets.html#%28tech._correlated._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">correlated
objects</span></a>.</div></p><p>Unlike <span class="RktSym"><a href="stxops.html#%28def._%28%28quote._~23~25kernel%29._datum-~3esyntax%29%29" class="RktValLink" data-pltdoc="x">datum-&gt;syntax</a></span>, <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._datum-~3ecorrelated%29%29" class="RktValLink" data-pltdoc="x">datum-&gt;correlated</a></span> does not
recur through the given S-expression and convert pieces to
<a href="linklets.html#%28tech._correlated._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">correlated objects</span></a>. Instead, a <a href="linklets.html#%28tech._correlated._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">correlated object</span></a> is
simply wrapped around the immediate value. In contrast,
<span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._correlated-~3edatum%29%29" class="RktValLink" data-pltdoc="x">correlated-&gt;datum</a></span> recurs through its argument (which is not
necessarily a <a href="linklets.html#%28tech._correlated._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">correlated object</span></a>) to discover any
<a href="linklets.html#%28tech._correlated._object%29" class="techoutside" data-pltdoc="x"><span class="techinside">correlated objects</span></a> and convert them to plain S-expressions.</p><p class="SHistory">Changed in version 7.6.0.6 of package <span class="stt">base</span>: Added the <span class="RktVar">prop</span> argument
to <span class="RktSym"><a href="linklets.html#%28def._%28%28lib._racket%2Flinklet..rkt%29._datum-~3ecorrelated%29%29" class="RktValLink" data-pltdoc="x">datum-&gt;correlated</a></span>.</p><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" id="searchbox" type="text" tabindex="1" placeholder="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;8.6&quot;, &quot;../&quot;);"/></form>&nbsp;&nbsp;<a href="https://docs.racket-lang.org/index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;8.6&quot;);">top</a><span class="tocsettoggle">&nbsp;&nbsp;<a href="javascript:void(0);" title="show/hide table of contents" onclick="TocsetToggle();">contents</a></span></span><span class="navright">&nbsp;&nbsp;<a href="repl-module.html" title="backward to &quot;14.13 The racket/repl Library&quot;" data-pltdoc="x">&larr; prev</a>&nbsp;&nbsp;<a href="security.html" title="up to &quot;14 Reflection and Security&quot;" data-pltdoc="x">up</a>&nbsp;&nbsp;<a href="os.html" title="forward to &quot;15 Operating System&quot;" data-pltdoc="x">next &rarr;</a></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>