program variantRecordDemo; type fooReference = ^foo; foo = record case Boolean of false: ( ); true: (location: fooReference); end; var head: fooReference; begin new(head, true); { … } dispose(head, true); end.