       (replace-match "(" nil t)))
 
 (defun ledger-schedule-read-descriptor-tree (descriptor-string)
-  "Take a date descriptor string and return a function that
+  "Take a date DESCRIPTOR-STRING and return a function of date that
 returns true if the date meets the requirements"
   (with-temp-buffer
     ;; copy the descriptor string into a temp buffer for manipulation

	    ((> count 0) ;; Positive count
	     (let ((decoded (gensym)))
	       `(let ((,decoded (decode-time date)))
		   (if (and (eq (nth 6 ,decoded) ,day-of-week)
			    (between  (nth 3 ,decoded) 
				      ,(* (1- count) 7) 
				      ,(* count 7)))
		       t
		       nil))))
	    ((< count 0) 
	     (let ((days-in-month (gensym))
		   (decoded (gensym)))

		       (,days-in-month (ledger-schedule-days-in-month 
					(nth 4 ,decoded) 
					(nth 5 ,decoded))))
		  (and (eq (nth 6 ,decoded) ,day-of-week)
		       (between  (nth 3 ,decoded) 
				 (+ ,days-in-month ,(* count 7)) 
				 (+ ,days-in-month ,(* (1+ count) 7)))))))
	    (t
	     (error "COUNT out of range, COUNT=%S" count)))
      (error "Invalid argument to ledger-schedule-day-in-month-macro %S %S" 
