Process an option of the form (:OPTION . l), where l must be a SUBSETP of a given set.
This function checks for an option that is specified as (:OPTION . l), where l must be a proper list and a SUBSETP of the-set. Thus (:OPTION) specifies the empty set, and :OPTION by itself is illegal. If the option is missing then the default value is returned, otherwise the subset l is returned.
Function:
(defun get-option-subset (ctx option option-list the-set default) (declare (xargs :guard (and (keywordp option) (keyword-option-listp option-list) (eqlable-listp the-set)))) (mv-let (msg value) (get-option-subset-mv option option-list the-set default) (if msg (bomb ctx "~@0" msg) value)))