Function: call-wisp-k

Source

(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