#'(lambda (action count)
    (when action 
      (format *standard-output* "~%The field (~{~A~^, ~}) is already taken. Try another one.~%" action))
    (let ((field nil))
      (loop until 
	        (and (listp field) (not (null field))
		      (every #'(lambda (pos)
				     (and (integerp pos)
					   (>= pos 0)
					    (< pos 3)))
			     field))
		    do
		        (format *standard-output* "[~D] Specify a field in the format `(x y)': " count)
			    (setq field (read))
			        )
      
      field))

