                (error "Not enough arguments (%d) for `el-patch-literal'"
                       (1- (length form))))
              (cdr form))
+            ((quote el-patch-feature)
+             (cond
+              ((<= (length form) 1)
+               (error "Not enough arguments (%d) for `el-patch-feature'"
+                      (1- (length form))))
+              ((>= (length form) 3)
+               (error "Too many arguments (%d) for `el-patch-feature'"
+                      (1- (length form)))))
+             (ignore (setq el-patch--feature (nth 1 form))))
             (_ (list (cl-mapcan resolve form)))))
       (or (gethash form table)
           (list form)))))


(defvar el-patch--not-present 'key-is-not-present-in-hash-table
  "Value used as a default argument to `gethash'.")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; Resolving patches

       'el-patch
       (format "Could not find definition of `%S'" name))
      nil)
     ((not (equal expected-definition actual-definition))

      (display-warning
       'el-patch
