Part III: Types and nested models

This part considers tuple and relation types, possible representations, constraints on types, and the consequences of allowing nested relational values.