prefer let over setf for dynamic vars