Unfinished work on figure Data Types.
[clqr.git] / clqr-types-and-classes.mp
bloba1c64cff559bf9d2b1367be6d13718a5865d346c
1 %&latex
2 prologues := 3;
3 input boxes
4 verbatimtex
5 \documentclass[8pt,pagesize,twoside,footexclude,headexclude]{scrartcl}
6 \input{clqr.packages}
7 \input{clqr.macros}
8 \begin{document}
9 etex
11 beginfig(49);
12   
13   boxit.t(btex \T etex);
14   t.nw = (0, 0);
15   drawboxed(t);
17   boxjoin(a.sw + (0, -3) = b.nw);
18   boxit.atom(btex \kwd*{ATOM} etex);
19   boxit.hash_table(btex \kwd*{HASH-TABLE} etex);
20   boxit.structure_object(btex \kwd*{STRUCTURE-OBJECT} etex);
21   t.se + (20, 0) = atom.nw;
22   drawboxed(atom,hash_table,structure_object);
23   
24   boxjoin(a.sw + (0, -3) = b.nw);
25   boxit.package(btex \kwd*{PACKAGE} etex);
26   boxit.readtable(btex \kwd*{READTABLE} etex);
27   structure_object.sw + (0,-8) = package.nw;
28   drawboxed(package,readtable);
29   
30   boxjoin(a.sw + (0, -3) = b.nw);
31   boxit.random_state(btex \kwd*{RANDOM-STATE} etex);
32   boxit.restart(btex \kwd*{RESTART} etex);
33   boxit.standard_object(btex \kwd*{STANDARD-OBJECT} etex);
34   boxit.class(btex \kwd*{CLASS} etex);
35   boxit.standard_class(btex \kwd*{STANDARD-CLASS} etex);
36   boxit.built_in_class(btex \kwd*{BUILT-IN-CLASS} etex);
37   boxit.structure_class(btex \kwd*{STRUCTURE-CLASS} etex);
38   boxit.method(btex \kwd*{METHOD} etex);
39   readtable.sw + (0, -8) = random_state.nw;
40   drawboxed(random_state,restart,standard_object,class,standard_class,built_in_class,structure_class,method);
41   
42   boxjoin(a.se + (0, -3) = b.ne);
43   boxit.standard_method(btex \kwd*{STANDARD-METHOD} etex);
44   boxit.method_combination(btex \kwd*{METHOD-COMBINATION} etex);
45   method.sw + (-15,-3) = standard_method.nw;
46   drawboxed(standard_method,method_combination);
47   
48   boxjoin();
49   boxit.character(btex \kwd*{CHARACTER} etex);
50   atom.ne + (300, -15) = character.nw;
51   drawboxed(character);
52   
53   boxjoin();
54   boxit.function(btex \kwd*{FUNCTION} \OP{\VAR{arg-types }\Op{\VAR{value-types}}} etex);
55   atom.ne + (210, -60) = function.nw;
56   drawboxed(function);
57   
58   boxjoin(a.ne + (10, 0) = b.nw);
59   boxit.pathname(btex \kwd*{PATHNAME} etex);
60   boxit.logical_pathname(btex \kwd*{LOGICAL-PATHNAME} etex);
61   logical_pathname.ne = (570,0);
62   drawboxed(pathname,logical_pathname);
64   boxjoin()
65   boxit.stream(btex \kwd*{STREAM} etex);
66   pathname.s + (0, -5) = stream.n;
67   drawboxed(stream);
70   boxjoin(a.se + (0, -3) = b.ne);
71   boxit.float(btex \kwd*{FLOAT} \OP{\VAR{lower-limit}\DF{\kwd{\A}}\Op{\VAR{upper-limit}\DF{\kwd{\A}}}} etex);
72   boxit.short_float(btex \kwd*{SHORT-FLOAT}\OP{\VAR{lower-limit}\DF{\kwd{\A}}\Op{\VAR{upper-limit}\DF{\kwd{\A}}}} etex);
73   boxit.single_float(btex \kwd*{SINGLE-FLOAT}\OP{\VAR{lower-limit}\DF{\kwd{\A}}\Op{\VAR{upper-limit}\DF{\kwd{\A}}}} etex);
74   boxit.double_float(btex \kwd*{DOUBLE-FLOAT}\OP{\VAR{lower-limit}\DF{\kwd{\A}}\Op{\VAR{upper-limit}\DF{\kwd{\A}}}} etex);
75   boxit.long_float(btex \kwd*{LONG-FLOAT}\OP{\VAR{lower-limit}\DF{\kwd{\A}}\Op{\VAR{upper-limit}\DF{\kwd{\A}}}} etex);
77   boxjoin(a.sw + (0, -3) = b.nw);
78   boxit.rational(btex \kwd*{RATIONAL}\OP{\VAR{lower-limit}\DF{\kwd{\A}}\Op{\VAR{upper-limit}\DF{\kwd{\A}}}} etex);
79   boxit.integer(btex \kwd*{INTEGER}\OP{\VAR{lower-limit}\DF{\kwd{\A}}\Op{\VAR{upper-limit}\DF{\kwd{\A}}}} etex);
80   boxit.ratio(btex \kwd*{RATIO} etex);
81   
82   boxjoin(a.sw + (0, -3) = b.nw);
83   boxit.number(btex \kwd*{NUMBER} etex);
84   boxit.complex(btex \kwd*{COMPLEX}\Op{\VAR{type}\DF{\kwd{\A}}} etex);
85   boxit.real(btex \kwd*{REAL}\OP{\VAR{lower-limit}\DF{\kwd{\A}}\Op{\VAR{upper-limit}\DF{\kwd{\A}}}} etex);
86   
87   boxjoin(a.ne + (3, 0) = b.nw);
88   boxit.signed_byte(btex \kwd*{SIGNED-BYTE}\Op{\VAR{size}\DF{\kwd{\A}}} etex);
89   boxit.fixnum(btex \kwd*{FIXNUM} etex);
90   boxit.bignum(btex \kwd*{BIGNUM} etex);
92   boxjoin(a.e + (10, 0) = b.w);
93   boxit.unsigned_byte(btex \kwd*{UNSIGNED-BYTE}\Op{\VAR{size}\DF{\kwd{\A}}} etex);
94   boxit.bit(btex \kwd*{BIT} etex);
95   
96   long_float.se = (555, -240);
97   real.se + (20, -5) = float.ne;
98   unsigned_byte.se = (373, -240);
99   bignum.s + (0, -23) = unsigned_byte.se;
100   integer.se + (0, -20) = bignum.ne;
101   
102   drawboxed(signed_byte,fixnum,bignum);
103   drawboxed(rational,integer,ratio);
104   drawboxed(float,short_float,single_float,double_float,long_float);
105   drawboxed(number,complex,real);
106   drawboxed(unsigned_byte,bit);
108   boxjoin(a.e + (10,0) = b.w);
109   boxit.sequence(btex \kwd*{SEQUENCE} etex);
110   boxit.list(btex \kwd*{LIST} etex);
111   boxit.cons(btex \kwd*{CONS}\OP{\VAR{car-type}\DF{\kwd{\A}}\Op{\VAR{cdr-type}\DF{\kwd{\A}}}} etex);
112   structure_object.ne + (10, 3) = sequence.w;
113   drawboxed(sequence,list,cons);
115   boxjoin(a.sw + (0, -3) = b.nw);
116   boxit.symbol(btex \kwd*{SYMBOL} etex);
117   boxit.null(btex \kwd*{NULL} etex);
118   list.se + (0, -3) = symbol.ne;
119   drawboxed(symbol,null);
120   
121   boxjoin(a.sw + (0, -3) = b.nw);
122   boxit.array(btex \kwd*{ARRAY}\OP{\VAR{type}\DF{\kwd{\A}}\Op{\VAR{rank}\DF{\kwd{\A}}\XOR(\OPn{\VAR{dimension}})}} etex);
123   boxit.simple_array(btex \kwd*{SIMPLE-ARRAY} \OP{\VAR{type}\DF{\kwd{\A}}\Op{\VAR{rank}\DF{\kwd{\A}}\XOR(\OPn{\VAR{dimension}})}} etex);
124   boxit.vector(btex \kwd*{VECTOR}\OP{\VAR{type}\DF{\kwd{\A}}\Op{\VAR{size}\DF{\kwd{\A}}}} etex);
125   boxit.string_(btex \kwd*{STRING}\Op{\VAR{size}\DF{\kwd{\A}}} etex);
126   boxit.simple_string(btex \kwd*{SIMPLE-STRING}\Op{\VAR{size}\DF{\kwd{\A}}} etex);
127   boxit.base_string(btex \kwd*{BASE-STRING}\Op{\VAR{size}\DF{\kwd{\A}}} etex);
128   boxit.simple_base_string(btex \kwd*{SIMPLE-BASE-STRING}\Op{\VAR{size}\DF{\kwd{\A}}} etex);
129   boxit.simple_vector(btex \kwd*{SIMPLE-VECTOR}\Op{\VAR{size}\DF{\kwd{\A}}} etex);
130   boxit.bit_vector(btex \kwd*{BIT-VECTOR}\Op{\VAR{size}\DF{\kwd{\A}}} etex);
131   null.sw + (-20, -6) = array.nw;
132   drawboxed(array,vector,simple_array,string_,simple_string,base_string,simple_base_string,simple_vector,bit_vector);
133   
134   boxjoin();
135   boxit.simple_bit_vector(btex \kwd*{SIMPLE-BIT-VECTOR}\Op{\VAR{size}\DF{\kwd{\A}}} etex);
136   bit_vector.se + (10, -5) = simple_bit_vector.sw;
137   drawboxed(simple_bit_vector);
138   
139   boxjoin(a.se + (0, -3) = b.ne);
140   boxit.file_stream(btex \kwd*{FILE-STREAM} etex);
141   boxit.two_way_stream(btex \kwd*{TWO-WAY-STREAM} etex);
142   boxit.synonym_stream(btex \kwd*{SYNONYM-STREAM} etex);
143   boxit.string_stream(btex \kwd*{STRING-STREAM} etex);
144   boxit.echo_stream(btex \kwd*{ECHO-STREAM} etex);
145   boxit.broadcast_stream(btex \kwd*{BROADCAST-STREAM} etex);
146   boxit.concatenated_stream(btex \kwd*{CONCATENATED-STREAM} etex);
147   logical_pathname.se + (0, -5) = file_stream.ne;
148   drawboxed(file_stream,two_way_stream,synonym_stream,string_stream,echo_stream,broadcast_stream,concatenated_stream);
149   
150   boxjoin(a.sw + (-13, 3) = b.ne);
151   boxit.keyword(btex \kwd*{KEYWORD} etex);
152   boxit.boolean_(btex \kwd*{BOOLEAN} etex);
153   symbol.se + (32,0) = boolean_.nw;
154   drawboxed(keyword,boolean_);
156   boxjoin(a.se + (0, -3) = b.ne);
157   boxit.compiled_function(btex \kwd*{COMPILED-FUNCTION} etex);
158   boxit.generic_function(btex \kwd*{GENERIC-FUNCTION} etex);
159   boxit.standard_generic_function(btex \kwd*{STANDARD-GENERIC-FUNCTION} etex);
160   function.se + (0, -8) = compiled_function.ne;
161   drawboxed(compiled_function,generic_function,standard_generic_function);
163   boxjoin(a.se + (0, -3) = b.ne);
164   boxit.extended_char(btex \kwd*{EXTENDED-CHAR} etex);
165   boxit.base_char(btex \kwd*{BASE-CHAR} etex);
166   boxit.standard_char(btex \kwd*{STANDARD-CHAR} etex);
167   character.e + (10,-10) = extended_char.w;
168   drawboxed(extended_char,base_char,standard_char);
169   
170   
171   drawarrow t.e{right} .. {right}t.e+(40,0) .. sequence.n{down};
172   drawarrow t.e{right} .. {right}t.e+(150,0) .. cons.ne+(2,3) .. function.n{down};
173   drawarrow t.e{right} .. {right}t.e+(150,0) .. cons.ne+(2,8) .. function.ne+(2,2) .. standard_char.sw+(-2,-2) .. number.nw+(5,0){down};
174   drawarrow t.e{right} .. {right}t.e+(150,0) .. character.w+(-45,8) .. character.w{right};
175   drawarrow t.e{right} .. {right}t.e+(150,0) .. character.n+(0,10) .. stream.w{right};
176   drawarrow t.e{right} .. {right}t.e+(250,0) .. pathname.w{right};
178   drawarrow t.s{down} ... atom.w{right};
179   drawarrow t.s{down} ... hash_table.w{right};
180   drawarrow t.s{down} ... structure_object.w{right};
181   drawarrow t.s{down} ... structure_object.sw+(0,-4){right} .. structure_object.se+(0,-4) .. symbol.w{right};
182   drawarrow t.s{down} ... package.w{right};
183   drawarrow t.s{down} ... readtable.w{right};
184   drawarrow t.s{down} ... readtable.sw+(0,-4){right} .. readtable.se+(0,-4) .. array.w+(0,3){right};
185   drawarrow t.s{down} ... random_state.w{right};
186   drawarrow t.s{down} ... restart.w{right};
187   drawarrow t.s{down} ... standard_object.w{right};
188   drawarrow t.s{down} ... method.w{right};
189   drawarrow t.s{down} ... method_combination.nw+(5,0){down};
191   drawarrow standard_object.s{down} .. class.e{left};
192   drawarrow class.w{left} .. standard_class.w{right};
193   drawarrow class.w{left} ... standard_class.w+(-10,0) ... built_in_class.w{right};
194   drawarrow class.w{left} ... standard_class.sw+(-13,0) ... structure_class.w{right};
195   
196   drawarrow standard_object.s{down} .. standard_class.ne+(2,2)  ... standard_class.se+(7,-10) ... structure_class.se+(2,-2) .. method.e{down} .. standard_method.ne+(5,2) .. standard_method.e{left} dashed evenly;
198   drawarrow vector.w{left} .. string_.w+(0,3){right};
199   drawarrow string_.w+(0,-3){left} .. simple_string.w+(-10,0) ... base_string.w{right};
200   drawarrow vector.w{left} ... base_string.w+(-17,0) ... bit_vector.w{right};
201   drawarrow sequence.e{right} .. list.w{right};
202   drawarrow list.e .. cons.w;
204   drawarrow symbol.e{right} .. keyword.w{right};
205   drawarrow symbol.e{right} .. boolean_.w{right};
207   drawarrow cons.sw + (20,0){down} .. symbol.se{left} .. null.e{left} dashed evenly;
209   
210   drawarrow sequence.s{down} .. null.sw+(-2,-3){right} ... array.ne+(-10,6) .. array.ne+(0,6) .. array.ne+(2,1) .. array.e{down} .. simple_array.ne+(0,6){right} .. simple_array.se+(0,-18) .. vector.e + (0, 3) {left} dashed evenly;
211   drawarrow sequence.s{down} .. null.sw+(-2,-3){right} ... array.ne+(-10,6) .. array.ne+(0,6) .. array.ne+(2,1) .. array.e{down} .. simple_array.ne+(0,6){right} .. simple_array.ne+(2,1){down} .. simple_array.e{down} .. simple_array.se+(2,-1){down}.. vector.ne+(30,0) .. vector.ne+(10,0) .. vector.e + (0, -3){down}  .. vector.se + (2,-1){down} .. simple_base_string.se+(5,0) .. simple_vector.e{left} dashed evenly;
212   drawarrow sequence.s{down} .. null.sw+(-2,-3){right} ... array.ne+(-10,6) .. array.ne+(0,6) .. array.ne+(2,1) .. array.e{down} .. simple_array.ne+(0,6){right} .. simple_array.ne+(2,1){down} .. simple_array.e{down} .. simple_array.se+(2,-1){down}.. vector.ne+(30,0) .. vector.ne+(10,0) .. vector.e + (0, -3){down}  .. vector.se + (2,-1){down} .. simple_base_string.se+(10,0) .. simple_vector.se+(0, -3) .. bit_vector.e{down} ... simple_bit_vector.w{right} dashed evenly;
213   drawarrow sequence.s{down} .. null.sw+(-2,-3){right} ... array.ne+(-10,6) .. array.ne+(0,6) .. array.ne+(2,1) .. array.e{down} .. simple_array.ne+(0,6){right} .. simple_array.ne+(2,1){down} .. simple_array.e{down} .. simple_array.se+(2,-1){down}.. vector.ne+(30,0) .. vector.ne+(10,0) .. vector.e + (0, -3){down}  .. vector.se + (2,-1){down} .. string_.e{down} .. simple_string.ne+(2,1){down}  .. simple_string.e{down}  .. simple_string.se+(2,1){down} .. base_string.e+(0,3){down} .. simple_base_string.ne+(-10,0){down} dashed evenly;
215   drawarrow array.w+(0,-3){left} .. simple_array.w{right};
217   drawarrow character.s{down} .. base_char.w+(0,3){right};
218   drawarrow character.s{down} .. extended_char.w{right};
219   drawarrow base_char.w+(0,-3){left} .. standard_char.nw+(5,0){down};
221   drawarrow function.s+(-20,0){down} .. compiled_function.w{right};
222   drawarrow function.s+(-20,0){down} .. generic_function.w{right};
223   drawarrow generic_function.w{left} .. standard_generic_function.nw + (10, 0){down};
225   drawarrow number.w{left} .. complex.w{right};
226   drawarrow number.w{left} ... complex.w+(-10,0) ... real.w{right};
228   drawarrow real.sw+(5,0){down} .. rational.e{left};
229   drawarrow real.sw+(5,0){down} .. float.w{right};
231   drawarrow float.e{right} ... short_float.ne+(6,-3) ... short_float.e{left};
232   drawarrow float.e{right} ... short_float.e+(10,0) ... single_float.e{left};
233   drawarrow float.e{right} ... short_float.se+(13,-3) ... double_float.e{left};
234   drawarrow float.e{right} ... single_float.e+(16,0) ... long_float.e{left};
236   drawarrow rational.w{left} .. integer.w{right};
237   drawarrow rational.w{left} .. ratio.w{right};
239   drawarrow integer.s+(15,0){down} .. signed_byte.ne+(-5,0){down};
240   drawarrow integer.s+(15,0){down} .. fixnum.n{down};
241   drawarrow integer.s+(15,0){down} .. bignum.nw+(5,0){down};
243   drawarrow signed_byte.se+(-5,0){down} .. unsigned_byte.n{down};
244   drawarrow unsigned_byte.e .. bit.w;
246   drawarrow stream.s{down} .. stream.s+(10,-6) .. file_stream.w{right};
247   drawarrow stream.s{down} .. two_way_stream.w{right};
248   drawarrow stream.s{down} ... synonym_stream.w{right};
249   drawarrow stream.s{down} ... string_stream.w{right};
250   drawarrow stream.s{down} ... echo_stream.w{right};
251   drawarrow stream.s{down} ... broadcast_stream.w{right};
252   drawarrow stream.s{down} ... concatenated_stream.w{right};
254   drawarrow pathname.e{right} .. logical_pathname.w{right};
255 endfig;
258 %\boxGOO{%
259 %  \T\index{T}%
260 %  \boxGOO{%
261 %    \kwd*{NUMBER}
262 %    \boxGOO{%
263 %      \kwd*{REAL } \OP{\VAR{lower-limit}\DF{\kwd{\A}}\text{ }\Op{\VAR{upper-limit}\DF{\kwd{\A}}}}\\
264 %      \boxGOO{%
265 %        \kwd*{RATIONAL } \OP{\VAR{lower-limit}\DF{\kwd{\A}}\text{ }\Op{\VAR{upper-limit}\DF{\kwd{\A}}}}\\
266 %        \boxGOO{%
267 %          \kwd*{INTEGER } \OP{\VAR{lower-limit}\DF{\kwd{\A}}\text{ }\Op{\VAR{upper-limit}\DF{\kwd{\A}}}}\\
268 %          \boxGOO{%
269 %            \kwd*{SIGNED-BYTE } \Op{\VAR{size}\DF{\kwd{\A}}}\\
270 %            \boxGOO{\kwd*{UNSIGNED-BYTE } \Op{\VAR{size}\DF{\kwd{\A}}}
271 %              \boxGOO{\kwd*{BIT} }}\boxGOOcr
272 %            \kwd*{FIXNUM} ;\>
273 %            \kwd*{BIGNUM}
274 %          }\boxGOOcr
275 %          \kwd*{RATIO}}\boxGOOcr
276 %        \kwd*{FLOAT } \OP{\VAR{lower-limit}\DF{\kwd{\A}}\text{ }\Op{\VAR{upper-limit}\DF{\kwd{\A}}}}\\
277 %        \boxGOO{%
278 %          \kwd*{SHORT-FLOAT } \OP{\VAR{lower-limit}\DF{\kwd{\A}}\text{ }\Op{\VAR{upper-limit}\DF{\kwd{\A}}}}\\
279 %          \kwd*{SINGLE-FLOAT } \OP{\VAR{lower-limit}\DF{\kwd{\A}}\text{ }\Op{\VAR{upper-limit}\DF{\kwd{\A}}}}\\
280 %          \kwd*{DOUBLE-FLOAT } \OP{\VAR{lower-limit}\DF{\kwd{\A}}\text{ }\Op{\VAR{upper-limit}\DF{\kwd{\A}}}}\\
281 %          \kwd*{LONG-FLOAT } \OP{\VAR{lower-limit}\DF{\kwd{\A}}\text{ }\Op{\VAR{upper-limit}\DF{\kwd{\A}}}}}}\boxGOOcr
282 %      \kwd*{COMPLEX } \Op{\VAR{type}\DF{\kwd{\A}}}}\boxGOOcr
283 %    \kwd*{SEQUENCE}
284 %    \boxGOO{%
285 %      \kwd*{LIST}
286 %      \boxGOO{%
287 %        \kwd*{CONS } \OP{\VAR{car-type}\DF{\kwd{\A}}\text{ }\Op{\VAR{cdr-type}\DF{\kwd{\A}}}}\\
288 %      \kwd*{SYMBOL}\footnotemark[2]
289 %      \boxGOO{
290 %        \kwd*{NULL}}}\boxGOOcr
291 %      \kwd*{ARRAY}\footnotemark[2] \OP{\VAR{type}\DF{\kwd{\A}}\text{ }\Op{\VAR{rank}\DF{\kwd{\A}}\XOR(\OPn{\VAR{dimension}})}}\\
292 %      \boxGOO{%
293 %        \kwd*{SIMPLE-ARRAY}\footnotemark[2] \OP{\VAR{type}\DF{\kwd{\A}}\text{ }\Op{\VAR{rank}\DF{\kwd{\A}}\XOR(\OPn{\VAR{dimension}})}}\\
294 %        \boxGOO{%
295 %          \kwd*{VECTOR}\footnotemark[2] \OP{\VAR{type}\DF{\kwd{\A}}\text{ }\Op{\VAR{size}\DF{\kwd{\A}}}}\\
296 %          \boxGOO{%
297 %            \kwd*{BIT-VECTOR}\footnotemark[2] \Op{\VAR{size}\DF{\kwd{\A}}}\\
298 %            \boxGOO{%
299 %              \kwd*{SIMPLE-BIT-VECTOR } \Op{\VAR{size}\DF{\kwd{\A}}}}\boxGOOcr
300 %            \kwd*{STRING}\footnotemark[2] \Op{\VAR{size}\DF{\kwd{\A}}}\\
301 %            \boxGOO{%
302 %              \kwd*{SIMPLE-STRING } \Op{\VAR{size}\DF{\kwd{\A}}}\\
303 %              \boxGOO{%
304 %                \kwd*{BASE-STRING}\footnotemark[2] \Op{\VAR{size}\DF{\kwd{\A}}}\\
305 %                \boxGOO{%
306 %                  \kwd*{SIMPLE-BASE-STRING } \Op{\VAR{size}\DF{\kwd{\A}}}}}}\boxGOOcr
307 %            \kwd*{SIMPLE-VECTOR } \Op{\VAR{size}\DF{\kwd{\A}}}}}\boxGOOcr
308 %        \kwd*{VECTOR } \OP{\VAR{type}\DF{\kwd{\A}}\text{ }\Op{\VAR{size}\DF{\kwd{\A}}}}\\
309 %        \boxGOO{%
310 %          \kwd*{STRING } \Op{\VAR{size}\DF{\kwd{\A}}}
311 %          \boxGOO{%
312 %            \kwd*{BASE-STRING } \Op{\VAR{size}\DF{\kwd{\A}}}}\boxGOOcr
313 %          \kwd*{BIT-VECTOR } \Op{\VAR{size}\DF{\kwd{\A}}}}}}\boxGOOcr
314 %    \kwd*{ARRAY} \OP{\VAR{type}\DF{\kwd{\A}}\text{ }\Op{\VAR{rank}\DF{\kwd{\A}}\XOR(\OPn{\VAR{dimension}})}}\\
315 %    \boxGOO{%
316 %      \kwd*{SIMPLE-ARRAY} \OP{\VAR{type}\DF{\kwd{\A}}\text{ }\Op{\VAR{rank}\DF{\kwd{\A}}\XOR(\OPn{\VAR{dimension}})}}
317 %    }\boxGOOcr
318 %    \kwd*{CHARACTER}
319 %    \boxGOO{%
320 %      \kwd*{BASE-CHAR}
321 %      \boxGOO{%
322 %        \kwd*{STANDARD-CHAR}}\boxGOOcr
323 %      \kwd*{EXTENDED-CHAR}}\boxGOOcr
324 %    \kwd*{STREAM}
325 %    \boxGOO{%
326 %      \kwd*{FILE-STREAM};\>
327 %      \kwd*{TWO-WAY-STREAM};\>
328 %      \kwd*{SYNONYM-STREAM};\\
329 %      \kwd*{STRING-STREAM};\>
330 %      \kwd*{BROADCAST-STREAM};\>
331 %      \kwd*{ECHO-STREAM};\\
332 %      \kwd*{CONCATENATED-STREAM}}\boxGOOcr
333 %    \kwd*{PATHNAME}
334 %    \boxGOO{%
335 %      \kwd*{LOGICAL-PATHNAME}}\boxGOOcr
336 %    \kwd*{SYMBOL}
337 %    \boxGOO{%
338 %      \kwd*{KEYWORD};\>
339 %      \kwd*{BOOLEAN}}\boxGOOcr
340 %    \kwd*{FUNCTION } \OP{\VAR{arg-types }\Op{\VAR{value-types}}}\\
341 %    \boxGOO{%
342 %      \kwd*{GENERIC-FUNCTION}
343 %      \boxGOO{\kwd*{STANDARD-GENERIC-FUNCTION}}\boxGOOcr
344 %      \kwd*{COMPILED-FUNCTION}}\boxGOOcr
345 %    \kwd*{STANDARD-OBJECT}
346 %    \boxGOO{%
347 %      \kwd*{CLASS}
348 %      \boxGOO{%
349 %        \kwd*{STANDARD-CLASS};\>
350 %        \kwd*{BUILT-IN-CLASS};\\
351 %        \kwd*{STRUCTURE-CLASS}}\boxGOOcr
352 %      \kwd*{METHOD}\footnotemark[2]
353 %      \boxGOO{%
354 %        \kwd*{STANDARD-METHOD}}}\boxGOOcr
355 %    \kwd*{ATOM};\>
356 %    \kwd*{HASH-TABLE};\>
357 %    \kwd*{STRUCTURE-OBJECT};\>
358 %    \kwd*{PACKAGE};\>
359 %    \kwd*{READTABLE};\\
360 %    \kwd*{RANDOM-STATE};\>
361 %    \kwd*{RESTART};\>
362 %    \kwd*{METHOD};\>
363 %    \kwd*{METHOD-COMBINATION}}}
364 verbatimtex
365 \end{document}
366 etex