Although Hash has a guaranteed order on 1.9+, I dislike the grouping here (and below). I could be swayed toward this design with a good argument, however.

On another note, this is totally when I wish Ruby had a "tuple" type.