indeed. Note that's a function declaration in Common Lisp (yours is Scheme):
(defun time-to-move (from-pos to-pos)
it's like the author didn't understand accessors? They don't need the with-accessors. They also might not need with-slots, had they had an accessor for last-duration. (with-slots (last-duration) antenna
(setf last-duration total-time)
=> (setf (last-duration antenna) total-time) ;; given last-duration is an accessor: both a getter and a setter.