Hi, shadowing a macro doesn't seem to work properly in all the cases:
(define-syntax my-begin (syntax-rules () ((_ x ...) (begin x ...)))) (let ((my-begin -)) (my-begin 0 1)) ; => -1 (ok) (define my-begin -) (apply my-begin '(0 1)) ; => -1 (ok) (my-begin 0 1) ; => 1 (oops) Thus `my-begin' acts as either a procedure or a macro depending on the context. Redefining `begin' (or even `##core#begin') has the same unsatisfactory behavior: (let ((begin -)) (begin 0 1)) ; => -1 (define begin -) (apply begin '(0 1)) ; => -1 (begin 0 1) ; => 1 Is this the expected behavior? Regards, Michele _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users