diff --git a/asdf.lisp b/asdf.lisp
index c82c6e8..94b52f1 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -836,7 +836,12 @@ the head of the tree"))
 ;;; runs :before methods most->least-specific, which is back to front
 ;;; for our purposes.  
 
-(defgeneric traverse (operation component))
+(defgeneric traverse (operation component)
+  (:documentation "Generate and return a plan for performing
+OPERATION on COMPONENT.  The returned plan will be a list of
+dotted pairs, each of which is an ASDF operation object and a
+COMPONENT object, which are to be performed in order."))
+
 (defmethod traverse ((operation operation) (c component))
   (let ((forced nil))
     (labels ((%do-one-dep (required-op required-c required-v)
