Blöd, denn so kann man Ihn nicht in der Mitte haben (nachfolgend noch invariante Felder ... die muß man also mit in den varianten Teil reinschieben)
und mehrere variante Teile sind auch nicht möglich, so wie z.B. in C++, wenn man verzweifelt versucht Header zu übersetzen.
Doch, das geht. Man muss nur für jede Gruppe von Feldern mit einem variablen Teil einen eigenen Record-Typ deklarieren und den "master" Record aus Feldern dieser "Subtypen" zusammensetzen.