In Common Lisp I can define a two-level macro and expand the macro like this:
(defmacro calc (a op b)
(list op a b))
(defmacro twice (x)
(list 'calc x '+ x))
(twice 10)
(macroexpand-1 '(twice 10))
(macroexpand '(twice 10))
Output:
20
(CALC 10 + 10)
(+ 10 10)
Now I am trying to do the same thing in MIT Scheme:
(define-syntax calc
(syntax-rules ()
((_ a op b)
(op a b))))
(define-syntax twice
(syntax-rules ()
((_ x)
(calc x + x))))
(twice 10)
How can I do the equivalent of macroexpand-1 and macroexpand in MIT Scheme?