Unia jest strukturą danych, której pola są rozmieszczane, począwszy od tego samego miejsca w pamięci. Odwołanie do danej w pamięci, w różny sposób, wymaga selekcji odpowiednich pól unii. Unie dostępne są w takich językach programowania jak, np. C, C++Jan Bielecki, Od C do C++, programowanie obiektowe w języku C, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, . Rekord z wariantami

Rekord zawierający kilka wariantów, które są również rozmieszczane począwszy od tego samego miejsca w pamięci, także implementuje powyższy mechanizm, z koniecznością selekcji odpowiednich pól rekordu. Jednak takie podejście może ograniczać możliwość odwołania do innego wariantu niż aktualny, przy włączonej kontroli przez translator. Przykładowe języki to PascalMichał Iglewski, Jan Madey, Stanisław Matwin, Pascal. Język wzorcowy – Pascal 360., Wydawnictwa Naukowo-Techniczne, Warszawa 1984, wydanie trzecie – zmienione, Seria: Biblioteka Inżynierii Oprogramowania, , Modula 2Niklaus Wirth, Modula 2, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, , AdaA. Nico Habermann, Dewayne E. Perry, Ada dla zaawansowanych, Wydawnictwa Naukowo-Techniczne, Warszawa 1989 r., seria: Biblioteka Inżynierii Oprogramowania, , Algol 68Jan Małuszyński, Krzysztof Pisecki, Algol 68. Wprowadzenie do języka Algol 68, A.