I'm working on a Java/JooQ app and having a lot of cases where I am passing strings (e.g. '32f93ed0-28cb-4aa4-8ec3-7956d68c768f') around that are the primary keys of tables.<p>It would be nice to get some more help from the type system such as subtyping a string. You can't do that in Java but I guess you could build an ORM system that distinguishes between the key to a record and the rest of the record and that would jive well with multipart keys.