A language for describing relational data types