diff --git a/control-flow.lisp b/control-flow.lisp
index dca011a6c79850b7f9d91035db475a7a215e372e..2e0f01646ae850066f8fd76d6d74eabe5c7725be 100644
--- a/control-flow.lisp
+++ b/control-flow.lisp
@@ -1,5 +1,13 @@
 (in-package :alexandria)
 
+(defun extract-function-name (spec)
+  "Useful for macros that want to mimic the functional interface for functions
+like #'eq and 'eq."
+  (if (and (consp spec)
+           (member (first spec) '(quote function)))
+      (second spec)
+      spec))
+
 (defun generate-switch-body (whole object clauses test key &optional default)
   (with-gensyms (value)
     (setf test (extract-function-name test))
diff --git a/definitions.lisp b/definitions.lisp
index 924757070e0de9570791e9f49fd047b4eb7b61a5..d1db72d6c320ffb9e56744b09a68486bc8569651 100644
--- a/definitions.lisp
+++ b/definitions.lisp
@@ -1,13 +1,5 @@
 (in-package :alexandria)
 
-(defun extract-function-name (spec)
-  "Useful for macros that want to mimic the functional interface for functions
-like #'eq and 'eq."
-  (if (and (consp spec)
-           (member (first spec) '(quote function)))
-      (second spec)
-      spec))
-
 (defun %reevaluate-constant (name value &key (test 'eql))
   (if (not (boundp name))
       value