(defun lookup (environment type name &key (error-p nil) (default-value nil)) (loop for (.type .name . data) in environment when (and (eql .type type) (eql .name name)) return (values data t) finally (if error-p (error "Sorry, No value for ~S of type ~S in environment ~S found." name type environment) (values default-value nil))))Source Context