no title added by buhman on Mon Dec 3 09:37:17 2018
(define-record-type foo (make-foo x y) foo? (x foo-x) (y foo-y)) (define-syntax test (ir-macro-transformer (lambda (exp inject compare) (let ((get-x (inject (symbol-append (strip-syntax 'foo) '- (strip-syntax 'x)))) (get-y (inject (symbol-append (strip-syntax 'foo) '- (strip-syntax 'y)))) (body (cdr exp))) `(list ,(get-x body) ,(get-y body)))))) #;215> (test (make-foo 1 2)) Error: during expansion of (test ...) - call of non-procedure: foo-x2352932 Call history: <syntax> (test (make-foo 1 2)) <eval> (inject (symbol-append (strip-syntax (quote foo)) (quote -) (strip-syntax (quote x)))) <eval> (symbol-append (strip-syntax (quote foo)) (quote -) (strip-syntax (quote x))) <eval> (strip-syntax (quote foo)) <eval> (strip-syntax (quote x)) <eval> (inject (symbol-append (strip-syntax (quote foo)) (quote -) (strip-syntax (quote y)))) <eval> (symbol-append (strip-syntax (quote foo)) (quote -) (strip-syntax (quote y))) <eval> (strip-syntax (quote foo)) <eval> (strip-syntax (quote y)) <eval> (cdr exp) <eval> (##sys#list (##core#quote list) (get-x body) (get-y body)) <eval> (get-x body) <--