(defmacro build-instance (module config &optional (gensym-name "G")) (let* ((gensym (gensym gensym-name)) (package (make-package gensym :use '(#:cl))) (query-handler (intern (symbol-name 'query-handler) package)) (this (intern (symbol-name 'this) package))) `(progn (defpackage ,gensym (:use :cl) (:export ',query-handler ',this)) (defparameter ,query-handler ,module) (defparameter ,this ,module) ,package)))