Allowable Types in ODL
For attributes: start with atomic or struct, and apply a collection type.
OK: string, set of integer, bag of Address.
Not OK: Product, set of set of integer.
start with interface type and apply a collection type.
OK: Product, set of Product, list of Person.
Not OK: struct {pname Product, cname Company}