constructor, since the default constructor uses gensym arg names, and we can't reference the other slot values in the default.
constructor, since the default constructor uses gensym arg names, and we can't reference the other slot values in the default.