somewhat more elaborate tuple structs