diff --git a/sequences.lisp b/sequences.lisp
index b1e153342403ec48d1cb8edcf5f66ddb848eb456..2c797b96663da9144c742886f08743e3b26bf914 100644
--- a/sequences.lisp
+++ b/sequences.lisp
@@ -5,6 +5,26 @@
 ;; macro, because inlining seems to cancel compiler macros (at least on SBCL).
 (declaim (inline copy-sequence sequence-of-length-p))
 
+(defun sequence-of-length-p (sequence length)
+  "Return true if SEQUENCE is a sequence of length LENGTH. Signals an error if
+SEQUENCE is not a sequence. Returns FALSE for circular lists."
+  (declare (type array-index length)
+           (inline length)
+           (optimize speed))
+  (etypecase sequence
+    (null
+     (zerop length))
+    (cons
+     (let ((n (1- length)))
+       (unless (minusp n)
+         (let ((tail (nthcdr n sequence)))
+           (and tail
+                (null (cdr tail)))))))
+    (vector
+     (= length (length sequence)))
+    (sequence
+     (= length (length sequence)))))
+
 (defun rotate-tail-to-head (sequence n)
   (declare (type (integer 1) n))
   (if (listp sequence)
@@ -172,26 +192,6 @@ is a literal integer."
                                                                     length
                                                                     current)))))))))))))
 
-(defun sequence-of-length-p (sequence length)
-  "Return true if SEQUENCE is a sequence of length LENGTH. Signals an error if
-SEQUENCE is not a sequence. Returns FALSE for circular lists."
-  (declare (type array-index length)
-           (inline length)
-           (optimize speed))
-  (etypecase sequence
-    (null
-     (zerop length))
-    (cons
-     (let ((n (1- length)))
-       (unless (minusp n)
-         (let ((tail (nthcdr n sequence)))
-           (and tail
-                (null (cdr tail)))))))
-    (vector
-     (= length (length sequence)))
-    (sequence
-     (= length (length sequence)))))
-
 (defun copy-sequence (type sequence)
   "Returns a fresh sequence of TYPE, which has the same elements as
 SEQUENCE."