"user-defined types, both of these fail if X is a struct." . . . .