diff options
Diffstat (limited to 'stdlib/pmac.tl')
-rw-r--r-- | stdlib/pmac.tl | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/stdlib/pmac.tl b/stdlib/pmac.tl index d56e1fda..1f383e6f 100644 --- a/stdlib/pmac.tl +++ b/stdlib/pmac.tl @@ -25,14 +25,14 @@ ;; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ;; POSSIBILITY OF SUCH DAMAGE. -(defmacro define-param-expander (keyword +(defmacro define-param-expander (:form f keyword (parms body : (env (gensym)) (form (gensym))) - . forms) - ^(progn - (set [*param-macro* ,keyword] - (lambda (,parms ,body ,env ,form) - ,*forms)) - ,keyword)) + . forms) + (let ((lambda ^(lambda (,parms ,body ,env ,form) ,*forms))) + (set-macro-ancestor lambda f) + ^(progn + (set [*param-macro* ,keyword] ,lambda) + ,keyword))) (defun macroexpand-params (prototype-form : env) (tree-case prototype-form |