pair ok but cdr fails? added by Demo on Sat May 20 04:32:20 2017

  (letrec ((recurse (lambda ()
					  (let ((item (assoc item-id (func tp))))
						(cond ((and (pair? item) (number? (car item)) (null? (cdr item))) ;; there is a record, and it has an empty list (exhausted)
							   #f)
							  ((and (pair? item) (number? (car item)) (pair? (cdr item))) ;; there is a record, and it has list of entries, return those entries
							   (car (cdr item)))
							  (else ;; there is no record, download it and return
							   (begin
								 (tp-download-listing tp item-id)
								 (recurse)) ))))))
	(recurse)))



Error: (*) bad argument type: #f

	Call history:

	<eval>	  [recurse19138] (func tp)
	<eval>	  (trading-post-buy-listings x)
	<eval>	  [trading-post-buy-listings] (##sys#check-structure x (##core#quote trading-post))
	<eval>	  [trading-post-buy-listings] (##sys#block-ref x 1)
	<eval>	  [recurse19138] (pair? item)
	<eval>	  [recurse19138] (number? (car item))
	<eval>	  [recurse19138] (car item)
	<eval>	  [recurse19138] (null? (cdr item))
	<eval>	  [recurse19138] (cdr item)
	<eval>	  [recurse19138] (pair? item)
	<eval>	  [recurse19138] (number? (car item))
	<eval>	  [recurse19138] (car item)
	<eval>	  [recurse19138] (pair? (cdr item))
	<eval>	  [recurse19138] (cdr item)
	<eval>	  [recurse19138] (car (cdr item))
	<eval>	  [recurse19138] (cdr item)	<--