(defun call-wisp-k (k-id &rest values) ;; probably want to trap form errors here. (destructuring-bind (k type package . data) (get-wisp-k k-id) (let ((*package* package) (*k-id* k-id)) (unless k (error 'wisp-invalid-continuation-id)) (case type (:form (let ((mvlist (multiple-value-list (funcall (car data))))) (if (cdr mvlist) (apply #'kall k mvlist) (funcall #'kall k (car mvlist))))) (t (apply #'kall (cons k values)))))))Source Context