Ja, das sind vor allem die in den Programmiersprachen üblichen Datentypen. Grundsätzlich gibt es hier eine Reihe von Basistypen (int, chat,...). Viele Programmiersprachen lassen Typkonstruktoren zu, etwa 'struct' oder 'recdord', welche weitgehend geordneten Paaren bzw. Tupeln entsprechen (mit dem Unterschied, dass die Komponenten Namen statt Indexnummern haben), gelegentlich gibt es auch 'setof' (Mengen). Moderne Programmiersprachen fassen dass Vermischungsverbot flexibler. So gibt es Subtypen (etwa a..b Ganzzahlen zwischen a und b einschl., Pascal, Modula2) und abgeleitete Typen ('Klassen' im objektorientierten Sinn). Man versucht so, die Problematik einer 'typeof'-Funktion zu vermeiden (Ergebnistyp: 'type', Argumenttyp: alles vermischt - was eigentlich gegen die 'reine Lehre' ist), und analog der Interpretationsfunktion: Argumenttyp: string (Objektname), Ergebnistyp: alles mögliche). Manchmal muss man eben doch verschiedene Typen mischen. Die Modelltheorie erklärt Typen als Sorten verschiedener Objekte, deren Vermischung zwar erlaubt, aber grundsätzlich (mit klar definierten Ausnahmen) nicht üblich ist (nicht innerhalb des Modells=Miniwelt!).