procgen  Diff

Differences From Artifact [7cd42aa5f2]:

To Artifact [9011b1b988]:


    82     82   	`((: ,name (#!rest (or symbol ,@(uniq types)) --> ,name ))
    83     83   	  (define (,name . args)
    84     84   		(define (safe-vector-ref v i) (if (null? v) (error "all struct fields need to be specified unless functional record update syntax is in use")
    85     85   										  (vector-ref v i)))
    86     86   		(let* ([basis (if (,(symsuf name "?") (car args)) (cdar args) '())]
    87     87   			   [spec (if (null? basis) args (cdr args))])
    88     88   		  (cons (quote ,typesym)
    89         -				(vector ,@(reduce-flds 0 fields)
    90         -
    91         -				  ))))))
           89  +				(vector ,@(reduce-flds 0 fields)))))))
    92     90   
    93     91     (let* ([name (car body)]
    94     92   		 [fields (cdr body)]
    95     93   		 [typesym (gensym)]
    96     94   		 [types (map extract-type fields)])
    97     95   	(append (emit-pred name typesym)
    98     96   			(emit-def  name types)
    99     97   			(emit-gen  name types typesym fields)
   100     98   			(reduce-fields name 0 fields))))