Jaunjo,<br><br>Thanks for the answer.  It definitely seems like there is a bit of ambiguity here.<br><br>> declaration identifier n. one of the symbols declaration,<br>
> dynamic-extent, ftype, function, ignore, inline, notinline, optimize,<br>
> special, or type; or a symbol which is the name of a type; or a symbol<br>> which has been declared to be a declaration identifier by using a<br>
> declaration declaration.<br><br>Ugh, I have always thought the spec reads like a legal document.  But this seems pretty clear, it has to be a symbol naming a type or a symbol that is declared to be a declaration identifier (I am unfamiliar with the what the latter is talking about, but I think that it isn't pertinent).  But this seems to contradict that:<br>
<br><a name="type"><i>Declaration</i> <b>TYPE</b></a> <p>
</p><p><b>Syntax:</b></p><p>
 </p><p>
<tt>(type </tt><i>typespec</i><tt> </tt><i>var</i><b>*</b><tt>)</tt> </p><p>
<tt>(</tt><i>typespec</i><tt> </tt><i>var</i><b>*</b><tt>)</tt> </p><p>
</p><p><b>Arguments:</b></p><p>
 </p><p>
<i>typespec</i>---a <i>type specifier</i>. </p><p>
<i>var</i>---a <i>variable</i> <i>name</i>. </p>...and from the glossary...<br><br><a name="type_specifier"><b>type specifier</b></a> <i>n.</i> an <i>expression</i> that denotes a <i>type</i>. ``The symbol <tt>random-state</tt>, the list <tt>(integer 3 5)</tt>, the list <tt>(and list (not null))</tt>, and the class named <tt>standard-class</tt> are type specifiers.''<br>

<br>Which is where I got the impression I had.  Also, it seems that X3J13 clean up issue TYPE-DECLARATION-ABBREVIATION:ALLOW-ALL has something to say regarding with which type specifiers one may omit `type' (i.e. it proposes to allow any and all type specifiers including (or a b)).  Is this still not valid Ansi CL (even X3J13 Ansi CL)?<br>
<br>This is completely academic and a bit ludicrous to argue about, really.  Inserting a `type' everywhere I get these errors would fix things.  I was just bringing up a seeming non-conformance.<br><br>Thanks for your time,<br>
Zach<br><br><br><br><div class="gmail_quote">On Fri, Jul 11, 2008 at 11:52 AM, Juan Jose Garcia-Ripoll <<a href="mailto:juanjose.garciaripoll@googlemail.com">juanjose.garciaripoll@googlemail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On Fri, Jul 11, 2008 at 7:47 PM, Zach <<a href="mailto:elzacho@gmail.com">elzacho@gmail.com</a>> wrote:<br>
> Hey, list,<br>
><br>
> I only did a cursory search through the bug tracker and list archive so<br>
> sorry if this is a known issue...<br>
><br>
> Compilation of functions that contain type declarations of unions which omit<br>
> `type' from the car of the declaration appear not to work in ecl-0.9{i,j,k}<br>
> (I pulled k from git on 7-10-2008).  E.g (declare (type (or type1 type2)<br>
> var)) seems to work fine, but without the `type': (declare ((or type1 type2)<br>
> var)) signals an error on compile.  This comes up if you want to build<br>
> Alexandria.  I didn't know it was valid CL to drop the `type', but after<br>
> looking at the spec, it seems that it is.  See the (attempted) compilation<br>
> of FUNC2 below.<br>
<br>
</div>I am afraid this is not valid Common Lisp<br>
<br>
identifier n. 1. a symbol used to identify or to distinguish names. 2.<br>
a string used the same way.<br>
<br>
name n., v.t. 1. n. an identifier by which an object, a binding, or an<br>
exit point is referred to by association using a binding. 2. v.t. to<br>
give a name to. 3. n. (of an object having a name component) the<br>
object which is that component. ``The string which is a symbol's name<br>
is returned by symbol-name.'' 4. n. (of a pathname) a. the name<br>
component, returned by pathname-name. b. the entire namestring,<br>
returned by namestring. 5. n. (of a character) a string that names the<br>
character and that has length greater than one. (All non-graphic<br>
characters are required to have names unless they have some<br>
implementation-defined attribute which is not null. Whether or not<br>
other characters have names is implementation-dependent.)<br>
<br><br>
Hence (OR ...) is not a valid type name and thus is not allowed.<br>
<br>
Juanjo<br>
<font color="#888888"><br>
--<br>
Facultad de Fisicas, Universidad Complutense,<br>
Ciudad Universitaria s/n Madrid 28040 (Spain)<br>
<a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a><br>
</font></blockquote></div><br>