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)	<--