<HTML><FONT FACE=arial,helvetica><FONT  SIZE=2 FAMILY="SANSSERIF" FACE="Arial" LANG="0">In a message dated 5/25/2003 5:55:35 PM Central Daylight Time, dherman@ccs.neu.edu writes:<BR>
<BR>
<BLOCKQUOTE TYPE=CITE style="BORDER-LEFT: #0000ff 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px; PADDING-LEFT: 5px">I'm learning a few things at once here, so please forgive any <BR>
muddle-headedness... I'm having some trouble defining macros that <BR>
generate unit/sig.</BLOCKQUOTE><BR>
<BR>
In the same spirit, my example below puzzles me...<BR>
This (toy) macro defines a signed unit form that has an export signature, <BR>
but no imports. It is supposed to generate a signed unit with an empty <BR>
import list. The macro looks like it "ought" to work--but doesn't.<BR>
<BR>
(require (lib "unitsig.ss"))<BR>
<BR>
(define-syntax bad-unit<BR>
&nbsp; (syntax-rules ()<BR>
&nbsp;&nbsp;&nbsp; ((_ export-sig . body)<BR>
&nbsp;&nbsp;&nbsp;&nbsp; (unit/sig export-sig (import) . body))))<BR>
<BR>
(define-signature test^ (get set tick))<BR>
(define test@<BR>
&nbsp; (bad-unit test^<BR>
&nbsp;&nbsp;&nbsp;&nbsp; (define xx 0)<BR>
&nbsp;&nbsp;&nbsp;&nbsp; (define (get) xx)<BR>
&nbsp;&nbsp;&nbsp;&nbsp; (define (set n) (set! xx n) xx)<BR>
&nbsp;&nbsp;&nbsp;&nbsp; (define (tick) (set! xx (+ xx 1)) xx)))<BR>
<BR>
The result is an error message:<BR>
&nbsp; unit: exported variable is not defined in: get<BR>
<BR>
Is this some subtle hygiene problem?<BR>
<BR>
Jim<BR>
</FONT></HTML>