(in-package #:utils) (defmacro with-package (pkg-sym &body body) (let ((pkg-name (symbol-name pkg-sym))) (unless (find-package pkg-name) (make-package pkg-name)) (let ((body-as-string (format nil "(cl:progn ~{~s~&~})" body)) (body-as-form)) (let ((*package* (find-package pkg-name))) (setq body-as-form (read-from-string body-as-string))) body-as-form)))