This file is indexed.

/usr/share/doc/racket/swindle/index.html is in racket-doc 6.7-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>Swindle</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_0&quot;);">&#9658;</a></td><td></td><td><a href="" class="tocviewselflink" data-pltdoc="x">Swindle</a></td></tr></table></div><div class="tocviewsublistonly" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="#%28part._.Features%29" class="tocviewlink" data-pltdoc="x">Features</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="#%28part._.Libraries%29" class="tocviewlink" data-pltdoc="x">Libraries</a></td></tr></table></div></div></div><div class="tocsub"><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber"></span><a href="#%28part._top%29" class="tocsubseclink" data-pltdoc="x">Swindle</a></td></tr><tr><td><span class="tocsublinknumber">1<tt>&nbsp;</tt></span><a href="#%28part._.Features%29" class="tocsubseclink" data-pltdoc="x">Features</a></td></tr><tr><td><span class="tocsublinknumber">2<tt>&nbsp;</tt></span><a href="#%28part._.Libraries%29" class="tocsubseclink" data-pltdoc="x">Libraries</a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="versionbox"><span class="version">6.7</span></div><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<span class="nonavigation">&larr; prev</span>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">up</a>&nbsp;&nbsp;<span class="nonavigation">next &rarr;</span></span>&nbsp;</div><h2 x-source-module="(lib &quot;swindle/swindle.scrbl&quot;)" x-source-pkg="swindle" x-part-tag="&quot;top&quot;"><a name="(part._top)"></a><a name="(part._.Swindle)"></a><a name="(mod-path._swindle)"></a>Swindle</h2><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=guide&amp;rel=Module_Syntax.html%23%2528part._hash-lang%2529&amp;version=6.7" class="RktModLink Sq" data-pltdoc="x"><span class="RktMod">#lang</span></a><span class="hspace">&nbsp;</span><a href="" class="RktModLink" data-pltdoc="x"><span class="RktSym">swindle</span></a></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">swindle</span></span></td></tr></table></p><p>Swindle extends Racket with many additional features.  The main
feature that started this project is a CLOS-like object system based
on Tiny-CLOS from Xerox, but there is a lot more.</p><p>Some documentation is available at
<a href="http://barzilay.org/Swindle/">http://barzilay.org/Swindle/</a>.</p><h3 x-source-module="(lib &quot;swindle/swindle.scrbl&quot;)" x-source-pkg="swindle" x-part-tag="&quot;Features&quot;">1<tt>&nbsp;</tt><a name="(part._.Features)"></a>Features</h3><p>The following is a high-level description of major features provided by
Swindle.  For every feature, the file that provides it is specified, if
only a subset of the system is needed.</p><ul><li><p>Some basic syntax extensions, including lambda &amp;-keywords, and
improved <span class="RktSym">define</span> and <span class="RktSym">let</span> forms.  (Available
separately using <span class="RktSym">swindle/base</span>)</p></li><li><p>Generic setters with <span class="RktSym">set!</span>, additional useful mutation
forms: <span class="RktSym">pset!</span>, <span class="RktSym">shift!</span>, <span class="RktSym">rotate!</span>, and some
simple ones like <span class="RktSym">inc!</span>, and <span class="RktSym">push!</span>.  (Available
separately using <span class="RktSym">swindle/setf</span>, where the names
<span class="RktSym">setf!</span> and <span class="RktSym">psetf!</span> are used to avoid changing the
Racket form)</p></li><li><p>Easy macro-defining macros &#8212;<wbr></wbr> simple <span class="RktSym">syntax-rules</span> macros with
<span class="RktSym">defsubst</span>, and a generic <span class="RktSym">defmacro</span> utility, all with a local
<span class="RktSym">let...</span> form, and extended to easily create symbol macros.
(<span class="RktSym">swindle/misc</span>)</p></li><li><p>A <span class="RktSym">collect</span> macro that provides very sophisticated list
comprehensions and much more.  (<span class="RktSym">swindle/misc</span>)</p></li><li><p>An <span class="RktSym">echo</span> mechanism which is an alternative to using
format strings, and contains many useful features including a list
iteration construct, and is easy to extend.
(<span class="RktSym">swindle/misc</span>)</p></li><li><p>A <span class="RktSym">regexp-case</span> syntax which is similar to a
<span class="RktSym">case</span> on strings with easy access to submatches.
(<span class="RktSym">swindle/misc</span>)</p></li><li><p>A CLOS-like object system &ndash; based on Tiny CLOS, but with many
extensions that bring it much closer to CLOS, and heavily optimized.
Some added features include singleton and struct classes, applicable
stand-alone methods, method-combination, and some MOP extensions.
(Available without syntax bindings in <span class="RktSym">swindle/tiny-clos</span>)</p></li><li><p>Good integration with the Racket implementation: primitive
values have corresponding Swindle classes, and struct types can also
be used as type specializers.  A Swindle class will be made when
needed, and it will reflect the struct hierarchy.  In addition,
structs can be defined with a Swindle-line <span class="RktSym">defstruct</span> syntax which
will also make it possible to create these structs with
<span class="RktSym">make</span> using keyword arguments.  (<span class="RktSym">swindle/tiny-clos</span>
and <span class="RktSym">swindle/extra</span>)</p></li><li><p>Many hairy macros that make the object system much more convenient
(CLOS has also a lot of macro code).  Some of the macros (especially
<span class="RktSym">defclass</span>) can be customized.  (<span class="RktSym">swindle/clos</span>)</p></li><li><p>Useful generic functions, including <span class="RktSym">print-object</span> which
is used to display all objects.  (<span class="RktSym">swindle/extra</span>)</p></li><li><p>A <span class="RktSym">match</span> mechanism with a generic-like interface.
(<span class="RktSym">swindle/extra</span>)</p></li><li><p>The fun <span class="RktSym">amb</span> toy.  (<span class="RktSym">swindle/extra</span>)</p></li><li><p>A language that can easily create HTML, where the result is
human-editable.  (<span class="RktSym">swindle/html</span>)</p></li><li><p>Customizable syntax: easy to add customized languages to DrRacket.
(<span class="RktSym">custom</span>)</p></li></ul><h3 x-source-module="(lib &quot;swindle/swindle.scrbl&quot;)" x-source-pkg="swindle" x-part-tag="&quot;Libraries&quot;">2<tt>&nbsp;</tt><a name="(part._.Libraries)"></a>Libraries</h3><p>Files marked with &ldquo;module&rdquo; provide a module by the same name, files
marked with "language module" modify the language and should be used
as an initial import for other modules.  Most files (and especially
all language modules) are useful by themselves, even without using the
whole Swindle environment.</p><ul><li><p><span class="RktSym">swindle/base</span> (language module) &#8212;<wbr></wbr>
Basic syntax extensions, mainly Lisp-like lambda argument &amp;-keywords.</p></li><li><p><span class="RktSym">swindle/setf</span> (module) &#8212;<wbr></wbr>
Generic setters similar to <span class="RktSym">setf</span> in Lisp, and a few more useful
macros.</p></li><li><p><span class="RktSym">swindle/misc</span> (module) &#8212;<wbr></wbr> Lots of useful functionality
bits, including everything from frequently useful Racket legacy
libraries (<a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=mzlib&amp;rel=mzlib_list.html&amp;version=6.7" class="RktModLink Sq" data-pltdoc="x"><span class="RktSym">mzlib/list</span></a>, <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=mzlib&amp;rel=mzlib_etc.html&amp;version=6.7" class="RktModLink Sq" data-pltdoc="x"><span class="RktSym">mzlib/etc</span></a>,
and <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=mzlib&amp;rel=mzlib_string.html&amp;version=6.7" class="RktModLink Sq" data-pltdoc="x"><span class="RktSym">mzlib/string</span></a>).</p></li><li><p><span class="RktSym">swindle/turbo</span> (language module) &#8212;<wbr></wbr> A module that
packages functionality from <span class="RktSym">swindle/base</span>,
<span class="RktSym">swindle/setf</span> (overriding <span class="RktSym">set!</span> with
<span class="RktSym">setf!</span>), and <span class="RktSym">swindle/misc</span>.</p></li><li><p><span class="RktSym">swindle/tiny-clos</span> (module) &#8212;<wbr></wbr>
The core object system, based on Tiny CLOS from Xerox, but heavily
modified, optimized and extended.</p></li><li><p><span class="RktSym">swindle/clos</span> (module) &#8212;<wbr></wbr> Convenient macro wrappers for
<span class="RktSym">swindle/tiny-clos</span>.</p></li><li><p><span class="RktSym">swindle/extra</span> (module) &#8212;<wbr></wbr> Extra functionality on top
of <span class="RktSym">swindle/clos</span>.</p></li><li><p><span class="RktSym">swindle/swindle</span> (language module) &#8212;<wbr></wbr> The main Swindle
environment module: packages <span class="RktSym">swindle/tiny-clos</span>,
<span class="RktSym">swindle/clos</span>, and <span class="RktSym">swindle/extra</span> on top of
<span class="RktSym">swindle/turbo</span>, and some more general definitions.</p></li><li><p><span class="RktSym">swindle/info</span> (module) &#8212;<wbr></wbr>
Compilation definitions.</p></li><li><p><span class="RktSym">swindle/tool</span> (module) &#8212;<wbr></wbr>
Setup for Swindle in DrRacket: makes some languages available in
DrRacket, including custom Swindle-based languages.</p></li><li><p><span class="RktSym">swindle/custom</span> (module) &#8212;<wbr></wbr>
A sample file that demonstrates how to create a Swindle-based
customized language; see the source for instructions.</p></li><li><p><span class="RktSym">swindle/html</span> (module) &#8212;<wbr></wbr>
A language for creating HTML.</p></li></ul><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<span class="nonavigation">&larr; prev</span>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">up</a>&nbsp;&nbsp;<span class="nonavigation">next &rarr;</span></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>