WITH-STRUCT is the WITH-SLOTS pendant for structures. I think there are different syntactic variants out there. I'm used to the one in SWANK which looks as follows: (defstruct (foo-struct (:conc-name foo-struct.)) slot1 slot2 slot3) (with-struct (foo-struct. slot1 slot2 slot3) *foo-struct* ...) -T.