Just noticed: You raise a W523 "Interface declared without a
GUID" for generic interfaces. Generic interfaces cannot have a
GUID.
And by the way: I believe a W504 (Missing INHERITED call in constructor/destructor) is not appropriate for a record constructor since they don't support inheritance in the first place.