Formalize the "notion of a structure"

Hopefully we'll soon be moving to polyproj, where I hope we won't have
to deal with this nonsense of defining simple record types for speed of
[destruct].