The name isn't known when the type object is constructed so think I'm happy to leave it as is. We could glue the name on afterwards but that would be ugly in it's own way (and supporting sub-types like List does would be fiddly). Suggestions for better ways to structure this welcome though.