 
 (defun el-patch--select-patch ()
   "Use `completing-read' to select a patched function.
-Return a list of two elements, the name (a symbol `defun',
-`defmacro', etc.) of the object being patched and the type (a
-symbol) of the definition."
+Return a list of two elements, the name (a symbol) of the object
+being patched and the type (a symbol `defun', `defmacro', etc.)
+of the definition."
   (let ((options (mapcar #'symbol-name (hash-table-keys el-patch--patches))))
     (unless options
       (user-error "No patches defined"))

                 (read defun-buffer))))))))

;;;###autoload
(defun el-patch-validate (patch-definition &optional nomsg run-hooks)
  "Validate the patch given by PATCH-DEFINITION.
This means el-patch will attempt to find the original definition
for the function, and verify that it is the same as the original

valid.

If RUN-HOOKS is non-nil, runs `el-patch-pre-validate-hook' and
`el-patch-post-validate-hook'. Interactively, this happens unless
a prefix argument is provided.

See also `el-patch-validate-all'."
  (interactive (progn
                 (unless current-prefix-arg
                   (run-hooks 'el-patch-pre-validate-hook))
                 (append (el-patch--select-patch)
                         (list nil (unless current-prefix-arg
                                     'post-only)))))
  (unless (member run-hooks '(nil post-only))
    (run-hooks 'el-patch-pre-validate-hook))
  (unwind-protect
      (progn
        (let* ((patch-definition (el-patch-get name type))
               (type (car patch-definition))
               (expected-definition (el-patch--resolve-definition
                                     patch-definition nil))
               (name (cadr expected-definition))
