<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Marco,<div><br></div><div>I can't offer any trenchant comments but I am very much in favor of Common Lisp being able to use type declarations more "dynamically".<br><div><div><br></div><div><br></div><div>On Jul 1s n3, 2008, at 6:22 AM, Marco Antoniotti wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi<div><br></div><div>I am writing here because this may be the place closest to some of the issue I would like to raise (slowly!) with some of the typing issues in CL.</div><div><br></div><div>Consider the following (contrived) example</div><div><br></div><div><div><font class="Apple-style-span" face="'Courier New'">(defstruct node</font></div><div><font class="Apple-style-span" face="'Courier New'">  content</font></div><div><font class="Apple-style-span" face="'Courier New'">  (left nil :type (or null arc))</font></div><div><font class="Apple-style-span" face="'Courier New'">  (right nil :type (or null arc)))</font></div><div><font class="Apple-style-span" face="'Courier New'"><br></font></div><div><font class="Apple-style-span" face="'Courier New'"><br></font></div><div><font class="Apple-style-span" face="'Courier New'">(defstruct arc</font></div><div><font class="Apple-style-span" face="'Courier New'">  (source nil :type (or null node))</font></div><div><font class="Apple-style-span" face="'Courier New'">  (sink nil :type (or null node)))</font></div><div><br></div><div>At least on LW, compiling the snippet the first time raises the following warning</div><div><div><br></div><div><font class="Apple-style-span" face="'Courier New'">; (SUBFUNCTION MAKE-NODE (DEFSTRUCT NODE))</font></div><div><font class="Apple-style-span" face="'Courier New'">;;;*** Warning in (SUBFUNCTION MAKE-NODE (STRUCTURE NODE)): Ignoring type declaration with illegal type (OR NULL ARC)</font></div><div><font class="Apple-style-span" face="'Courier New'">;;;*** Warning in (SUBFUNCTION MAKE-NODE (STRUCTURE NODE)): Ignoring type declaration with illegal type (OR NULL ARC)</font></div><div><br></div><div>There seem to be no way in CL to make a "forward" type declaration.  So, the questions I raise are two.</div><div>1 - which would be the best forum (<font class="Apple-style-span" face="'Courier New'">:if-exists :use-it :if-does-not-exist :do-not-use-c.l.l.-yet</font>) where to have this discussion?</div><div>2 - where would you look in the ANSI spec for places where various clauses needs to be changed or removed to make recursive types "CDR-able"?</div><div><br></div><div>Cheers</div><div>--</div><div>Marco</div><div><br></div></div><div><br></div></div><div><div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><br class="Apple-interchange-newline"></span> </div><br></div></div>_______________________________________________<br>closer-devel mailing list<br><a href="mailto:closer-devel@common-lisp.net">closer-devel@common-lisp.net</a><br>http://common-lisp.net/cgi-bin/mailman/listinfo/closer-devel<br></blockquote></div><br><div> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div>--</div><div>Gary Warren King, metabang.com </div><div>Cell: (413) 559 8738</div><div>Fax: (206) 338-4052</div></span><div>gwkkwg on Skype * garethsan on AIM</div><div><br class="khtml-block-placeholder"></div><div><br class="khtml-block-placeholder"></div></span><br class="Apple-interchange-newline"></span></div></span> </div><br></div></body></html>