chicken introspection added by iterrogo on Thu Aug 14 19:16:25 2014

(define src '())

(define-syntax define2
  (syntax-rules ()
    ((_ (name . args) body ...)
     (begin (set! src (cons '(name . ((define (name . args) body ...))) src))
            (define (name . args) body ...)))))


(define2 (add2 a) (+ a 2)) ; => #<unspecified>
(add2 3) ; => 5
src      ; => ((add2 . (define (add2 a) (+ a 2))))