summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/ref/Makefile.am8
-rw-r--r--doc/ref/gds.diabin0 -> 1645 bytes
-rw-r--r--doc/ref/gds.eps449
-rw-r--r--doc/ref/gds.pdfbin0 -> 2936 bytes
-rw-r--r--doc/ref/gds.txt17
-rw-r--r--doc/ref/goops-tutorial.texi10
-rw-r--r--doc/ref/scheme-using.texi40
-rw-r--r--doc/ref/scheme.diabin0 -> 1821 bytes
-rw-r--r--doc/ref/scheme.eps457
-rw-r--r--doc/ref/scheme.pdfbin0 -> 2898 bytes
-rw-r--r--doc/ref/scheme.txt11
11 files changed, 961 insertions, 31 deletions
diff --git a/doc/ref/Makefile.am b/doc/ref/Makefile.am
index 2f218a565..d58b3705a 100644
--- a/doc/ref/Makefile.am
+++ b/doc/ref/Makefile.am
@@ -89,8 +89,16 @@ PICTURES = hierarchy.eps \
hierarchy.pdf \
hierarchy.png \
hierarchy.txt \
+ gds.eps \
+ gds.pdf \
+ gds.txt \
+ scheme.eps \
+ scheme.pdf \
+ scheme.txt \
mop.text
+noinst_DATA = $(PICTURES)
+
EXTRA_DIST = ChangeLog-2008 $(PICTURES)
include $(top_srcdir)/am/pre-inst-guile
diff --git a/doc/ref/gds.dia b/doc/ref/gds.dia
new file mode 100644
index 000000000..b134d0438
--- /dev/null
+++ b/doc/ref/gds.dia
Binary files differ
diff --git a/doc/ref/gds.eps b/doc/ref/gds.eps
new file mode 100644
index 000000000..e37b6a47e
--- /dev/null
+++ b/doc/ref/gds.eps
@@ -0,0 +1,449 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/bjg/guile/doc/ref/gds.dia
+%%Creator: Dia v0.95-1
+%%CreationDate: Tue Dec 8 14:11:12 2009
+%%For: bjg
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 949 421
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def /savematrix mtrx currentmatrix def
+ x y tr xrad yrad sc
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/Times-Roman-latin1
+ /Times-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Italic-latin1
+ /Times-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Bold-latin1
+ /Times-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+ /Times-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+ /AvantGarde-Book findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+ /AvantGarde-BookOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+ /AvantGarde-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+ /AvantGarde-DemiOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Light-latin1
+ /Bookman-Light findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+ /Bookman-LightItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Demi-latin1
+ /Bookman-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+ /Bookman-DemiItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-latin1
+ /Courier findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Oblique-latin1
+ /Courier-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Bold-latin1
+ /Courier-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+ /Courier-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-latin1
+ /Helvetica findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+ /Helvetica-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+ /Helvetica-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+ /Helvetica-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+ /Helvetica-Narrow findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+ /Helvetica-Narrow-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+ /Helvetica-Narrow-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+ /Helvetica-Narrow-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+ /NewCenturySchoolbook-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+ /NewCenturySchoolbook-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+ /NewCenturySchoolbook-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+ /NewCenturySchoolbook-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Roman-latin1
+ /Palatino-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Italic-latin1
+ /Palatino-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Bold-latin1
+ /Palatino-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+ /Palatino-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Symbol-latin1
+ /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+ /ZapfChancery-MediumItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/ZapfDingbats-latin1
+ /ZapfDingbats findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+28.346000 -28.346000 scale
+-0.061670 -17.866043 translate
+%%EndProlog
+
+
+0.010000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 0.061670 3.016800 m 33.507821 3.016800 l s
+n 0.061670 17.866043 m 33.507821 17.866043 l s
+n 0.061670 3.016800 0.000000 0.000000 180.000000 270.000000 ellipse s
+n 33.507821 3.016800 0.000000 0.000000 270.000000 360.000000 ellipse s
+n 0.061670 3.016800 m 0.061670 17.866043 l s
+n 33.507821 3.016800 m 33.507821 17.866043 l s
+n 0.061670 17.866043 0.000000 0.000000 90.000000 180.000000 ellipse s
+n 33.507821 17.866043 0.000000 0.000000 0.000000 90.000000 ellipse s
+n 2.176250 4.300000 m 2.176250 9.100000 l 9.400000 9.100000 l 9.400000 4.300000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 2.176250 4.300000 m 2.176250 9.100000 l 9.400000 9.100000 l 9.400000 4.300000 l cp s
+/Helvetica-latin1 ff 0.560000 scf sf
+(Program #1) dup sw 2 div 5.788125 ex sub 6.050000 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 3.425000 6.650000 m 3.425000 8.550000 l 7.975000 8.550000 l 7.975000 6.650000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 3.425000 6.650000 m 3.425000 8.550000 l 7.975000 8.550000 l 7.975000 6.650000 l cp s
+/Helvetica-latin1 ff 0.560000 scf sf
+(GDS Client) dup sw 2 div 5.700000 ex sub 7.750000 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 2.400000 11.600000 m 2.400000 17.050000 l 9.550000 17.050000 l 9.550000 11.600000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 2.400000 11.600000 m 2.400000 17.050000 l 9.550000 17.050000 l 9.550000 11.600000 l cp s
+/Helvetica-latin1 ff 0.560000 scf sf
+(Program #2) dup sw 2 div 5.975000 ex sub 13.275000 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 3.750000 14.250000 m 3.750000 16.150000 l 8.550000 16.150000 l 8.550000 14.250000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 3.750000 14.250000 m 3.750000 16.150000 l 8.550000 16.150000 l 8.550000 14.250000 l cp s
+/Helvetica-latin1 ff 0.560000 scf sf
+(GDS Client) dup sw 2 div 6.150000 ex sub 15.350000 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 16.175000 8.575000 m 16.175000 11.275000 l 20.975000 11.275000 l 20.975000 8.575000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 16.175000 8.575000 m 16.175000 11.275000 l 20.975000 11.275000 l 20.975000 8.575000 l cp s
+/Helvetica-latin1 ff 0.560000 scf sf
+(GDS Server) dup sw 2 div 18.575000 ex sub 10.075000 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 8.550000 15.200000 m 16.175000 9.925000 l s
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 7.975000 7.600000 m 16.175000 9.925000 l s
+/Helvetica-latin1 ff 0.560000 scf sf
+(TCP) 11.350000 12.300000 m gs 1 -1 sc sh gr
+/Helvetica-latin1 ff 0.560000 scf sf
+(TCP) 11.400000 8.150000 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 22.850100 6.025000 m 22.850100 12.000000 l 30.900100 12.000000 l 30.900100 6.025000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 22.850100 6.025000 m 22.850100 12.000000 l 30.900100 12.000000 l 30.900100 6.025000 l cp s
+/Helvetica-latin1 ff 0.560000 scf sf
+(Emacs) dup sw 2 div 26.875100 ex sub 7.162500 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 23.935100 8.850000 m 23.935100 10.900000 l 29.500100 10.900000 l 29.500100 8.850000 l f
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 23.935100 8.850000 m 23.935100 10.900000 l 29.500100 10.900000 l 29.500100 8.850000 l cp s
+/Helvetica-latin1 ff 0.560000 scf sf
+(GDS Interface) dup sw 2 div 26.717600 ex sub 10.025000 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 20.975000 9.925000 m 23.935100 9.875000 l s
+showpage
diff --git a/doc/ref/gds.pdf b/doc/ref/gds.pdf
new file mode 100644
index 000000000..9af4ab2d9
--- /dev/null
+++ b/doc/ref/gds.pdf
Binary files differ
diff --git a/doc/ref/gds.txt b/doc/ref/gds.txt
new file mode 100644
index 000000000..4e32ecb0c
--- /dev/null
+++ b/doc/ref/gds.txt
@@ -0,0 +1,17 @@
++----------------+
+| Program #1 |
+| |
+| +------------+ |
+| | GDS Client |-_
+| +------------+ |-_ +-------------------+
++----------------+ -_TCP | Emacs |
+ -_ | |
+ -_+------------+ | +---------------+ |
+ _| GDS Server |-----| GDS Interface | |
++----------------+ _- +------------+ | +---------------+ |
+| Program #2 | _- +-------------------+
+| | _- TCP
+| +------------+ _-
+| | GDS Client |-|
+| +------------+ |
++----------------+
diff --git a/doc/ref/goops-tutorial.texi b/doc/ref/goops-tutorial.texi
index 600be7730..569920af6 100644
--- a/doc/ref/goops-tutorial.texi
+++ b/doc/ref/goops-tutorial.texi
@@ -466,13 +466,17 @@ super class of all standard Scheme types.
@example
@group
-@image{hierarchy}
-@center @emph{Fig 1: A class hierarchy}
@iftex
+@center @image{hierarchy,5in}
+@end iftex
+@ifnottex
+@verbatiminclude hierarchy.txt
+@end ifnottex
+
+@emph{Fig 1: A class hierarchy}
@emph{(@code{<complex>} which is the direct subclass of @code{<number>}
and the direct superclass of @code{<real>} has been omitted in this
figure.)}
-@end iftex
@end group
@end example
diff --git a/doc/ref/scheme-using.texi b/doc/ref/scheme-using.texi
index a8a2568e3..2e0a68ff9 100644
--- a/doc/ref/scheme-using.texi
+++ b/doc/ref/scheme-using.texi
@@ -371,19 +371,14 @@ to each other, with the arrows indicating ``builds on'' or
``extends''. For example, the Quack library builds on cmuscheme,
which in turn builds on the standard scheme mode.
+@iftex
+@center @image{scheme,5in}
+@end iftex
+@ifnottex
@example
- scheme
- ^
- |
- .-----+-----.
- | |
- cmuscheme xscheme
- ^
- |
- .-----+-----.
- | |
- Quack GDS
+@verbatiminclude scheme.txt
@end example
+@end ifnottex
@dfn{scheme}, written by Bill Rozas and Dave Love, is Emacs's standard
mode for Scheme code files. It provides Scheme-sensitive syntax
@@ -550,25 +545,14 @@ program that wants to use GDS in any way.
The following diagram shows how these components are connected to each
other.
+@iftex
+@center @image{gds,5in}
+@end iftex
+@ifnottex
@example
-+----------------+
-| Program #1 |
-| |
-| +------------+ |
-| | GDS Client |-_
-| +------------+ |-_ +-------------------+
-+----------------+ -_TCP | Emacs |
- -_ | |
- -_+------------+ | +---------------+ |
- _| GDS Server |-----| GDS Interface | |
-+----------------+ _- +------------+ | +---------------+ |
-| Program #2 | _- +-------------------+
-| | _- TCP
-| +------------+ _-
-| | GDS Client |-|
-| +------------+ |
-+----------------+
+@verbatiminclude gds.txt
@end example
+@end ifnottex
@cindex TCP, use of
The data exchanged between client and server components, and between
diff --git a/doc/ref/scheme.dia b/doc/ref/scheme.dia
new file mode 100644
index 000000000..30f9cc2bf
--- /dev/null
+++ b/doc/ref/scheme.dia
Binary files differ
diff --git a/doc/ref/scheme.eps b/doc/ref/scheme.eps
new file mode 100644
index 000000000..9481b9c53
--- /dev/null
+++ b/doc/ref/scheme.eps
@@ -0,0 +1,457 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/bjg/guile/doc/ref/scheme.dia
+%%Creator: Dia v0.95-1
+%%CreationDate: Tue Dec 8 14:22:51 2009
+%%For: bjg
+%%Orientation: Portrait
+%%Magnification: 1.0000
+%%BoundingBox: 0 0 576 445
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def /savematrix mtrx currentmatrix def
+ x y tr xrad yrad sc
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+/Times-Roman-latin1
+ /Times-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Italic-latin1
+ /Times-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Bold-latin1
+ /Times-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+ /Times-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+ /AvantGarde-Book findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+ /AvantGarde-BookOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+ /AvantGarde-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+ /AvantGarde-DemiOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Light-latin1
+ /Bookman-Light findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+ /Bookman-LightItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Demi-latin1
+ /Bookman-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+ /Bookman-DemiItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-latin1
+ /Courier findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Oblique-latin1
+ /Courier-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Bold-latin1
+ /Courier-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+ /Courier-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-latin1
+ /Helvetica findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+ /Helvetica-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+ /Helvetica-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+ /Helvetica-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+ /Helvetica-Narrow findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+ /Helvetica-Narrow-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+ /Helvetica-Narrow-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+ /Helvetica-Narrow-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+ /NewCenturySchoolbook-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+ /NewCenturySchoolbook-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+ /NewCenturySchoolbook-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+ /NewCenturySchoolbook-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Roman-latin1
+ /Palatino-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Italic-latin1
+ /Palatino-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Bold-latin1
+ /Palatino-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+ /Palatino-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Symbol-latin1
+ /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+ /ZapfChancery-MediumItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/ZapfDingbats-latin1
+ /ZapfDingbats findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+28.346000 -28.346000 scale
+-17.174517 -10.811080 translate
+%%EndProlog
+
+
+0.010000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 17.174517 -4.886690 m 37.468481 -4.886690 l s
+n 17.174517 10.811080 m 37.468481 10.811080 l s
+n 17.174517 -4.886690 0.000000 0.000000 180.000000 270.000000 ellipse s
+n 37.468481 -4.886690 0.000000 0.000000 270.000000 360.000000 ellipse s
+n 17.174517 -4.886690 m 17.174517 10.811080 l s
+n 37.468481 -4.886690 m 37.468481 10.811080 l s
+n 17.174517 10.811080 0.000000 0.000000 90.000000 180.000000 ellipse s
+n 37.468481 10.811080 0.000000 0.000000 0.000000 90.000000 ellipse s
+0.100000 slw
+[] 0 sd
+n 20.050000 7.950000 m 20.050000 9.350000 l 23.050000 9.350000 l 23.050000 7.950000 l f
+0.000000 0.000000 0.000000 srgb
+n 20.050000 7.950000 m 20.050000 9.350000 l 23.050000 9.350000 l 23.050000 7.950000 l cp s
+/Helvetica-Bold-latin1 ff 0.700000 scf sf
+(Quack) dup sw 2 div 21.550000 ex sub 8.950000 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+1.000000 1.000000 1.000000 srgb
+n 25.900000 7.950000 m 25.900000 9.350000 l 28.050000 9.350000 l 28.050000 7.950000 l f
+0.000000 0.000000 0.000000 srgb
+n 25.900000 7.950000 m 25.900000 9.350000 l 28.050000 9.350000 l 28.050000 7.950000 l cp s
+/Helvetica-Bold-latin1 ff 0.700000 scf sf
+(GDS) dup sw 2 div 26.975000 ex sub 8.950000 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+1.000000 1.000000 1.000000 srgb
+n 21.450000 2.200000 m 21.450000 3.600000 l 26.800000 3.600000 l 26.800000 2.200000 l f
+0.000000 0.000000 0.000000 srgb
+n 21.450000 2.200000 m 21.450000 3.600000 l 26.800000 3.600000 l 26.800000 2.200000 l cp s
+/Helvetica-Bold-latin1 ff 0.700000 scf sf
+(cmuscheme) dup sw 2 div 24.125000 ex sub 3.200000 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+0 slj
+0 slc
+n 24.357500 4.511803 m 24.357500 5.775000 l 27.098800 5.775000 l 27.098800 7.950000 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 24.757500 4.511803 m 24.357500 3.711803 l 23.957500 4.511803 l ef
+0.100000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 24.757500 4.511803 m 24.357500 3.711803 l 23.957500 4.511803 l cp s
+/Courier-latin1 ff 0.560000 scf sf
+0.100000 slw
+[] 0 sd
+0 slj
+0 slc
+n 24.357500 4.511803 m 24.357500 5.775000 l 21.698800 5.775000 l 21.698800 7.950000 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 24.757500 4.511803 m 24.357500 3.711803 l 23.957500 4.511803 l ef
+0.100000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 24.757500 4.511803 m 24.357500 3.711803 l 23.957500 4.511803 l cp s
+/Courier-latin1 ff 0.560000 scf sf
+0.100000 slw
+[] 0 sd
+1.000000 1.000000 1.000000 srgb
+n 30.300000 2.200000 m 30.300000 3.600000 l 34.400000 3.600000 l 34.400000 2.200000 l f
+0.000000 0.000000 0.000000 srgb
+n 30.300000 2.200000 m 30.300000 3.600000 l 34.400000 3.600000 l 34.400000 2.200000 l cp s
+/Helvetica-Bold-latin1 ff 0.700000 scf sf
+(xscheme) dup sw 2 div 32.350000 ex sub 3.200000 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+1.000000 1.000000 1.000000 srgb
+n 27.400000 -3.500000 m 27.400000 -2.100000 l 31.050000 -2.100000 l 31.050000 -3.500000 l f
+0.000000 0.000000 0.000000 srgb
+n 27.400000 -3.500000 m 27.400000 -2.100000 l 31.050000 -2.100000 l 31.050000 -3.500000 l cp s
+/Helvetica-Bold-latin1 ff 0.700000 scf sf
+(scheme) dup sw 2 div 29.225000 ex sub -2.500000 m gs 1 -1 sc sh gr
+0.100000 slw
+[] 0 sd
+0 slj
+0 slc
+n 29.368800 -1.188197 m 29.368800 0.050000 l 32.526300 0.050000 l 32.526300 2.200000 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 29.768800 -1.188197 m 29.368800 -1.988197 l 28.968800 -1.188197 l ef
+0.100000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 29.768800 -1.188197 m 29.368800 -1.988197 l 28.968800 -1.188197 l cp s
+/Courier-latin1 ff 0.560000 scf sf
+0.100000 slw
+[] 0 sd
+0 slj
+0 slc
+n 29.368800 -1.188197 m 29.368800 0.050000 l 24.357500 0.050000 l 24.357500 2.200000 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 29.768800 -1.188197 m 29.368800 -1.988197 l 28.968800 -1.188197 l ef
+0.100000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 29.768800 -1.188197 m 29.368800 -1.988197 l 28.968800 -1.188197 l cp s
+/Courier-latin1 ff 0.560000 scf sf
+/Helvetica-latin1 ff 0.560000 scf sf
+showpage
diff --git a/doc/ref/scheme.pdf b/doc/ref/scheme.pdf
new file mode 100644
index 000000000..fff74f432
--- /dev/null
+++ b/doc/ref/scheme.pdf
Binary files differ
diff --git a/doc/ref/scheme.txt b/doc/ref/scheme.txt
new file mode 100644
index 000000000..64ae05204
--- /dev/null
+++ b/doc/ref/scheme.txt
@@ -0,0 +1,11 @@
+ scheme
+ ^
+ |
+ .-----+-----.
+ | |
+ cmuscheme xscheme
+ ^
+ |
+ .-----+-----.
+ | |
+ Quack GDS