Syntax error: in `unquote' - pair expected added by zilti on Thu Jan 11 23:20:28 2018

(define-syntax construct
  (er-macro-transformer
   (lambda (form rename compare?)
     (let* ((superclass (second form))
	    (class (third form))
	    (args (drop form 3))
	    (classname (string->symbol (string-append "<" (symbol->string class) ">"))))
       `(begin (define-class ,classname (,superclass))
	       (define-method (initialize-instance (c ,classname)) 
		 ((setter ptr) c (#~,class
				  ,@(map (lambda (x) `(alist-ref ,x (attributes c))) args) 
				  return: pointer:))
		 (call-next-method)))))))