(define-syntax jimport (er-macro-transformer (lambda (x r c) (let* ((%begin (r 'begin)) (%define (r 'define)) (%class (r 'class)) (class-symbol (cadr x)) (prefix (string-append (symbol->string (caddr x)) "-")) (class-getter (string->symbol (string-append prefix "class"))) (class-methods (methods (class class-symbol)))) (cons %begin (append (map (lambda (m) `(,%jimport-method m)) class-methods) `(,%define (,class-getter) (,%class ,class-symbol))))))))