Zentral bei der Verkapselung eines Tk-Objektes für HTk ist der (abstrakt) exportierte Datentyp. Dieser ist die externe Repräsentation des jeweiligen Objektes und dient später als Handle, u.a. um nachträglich Konfigurationsoptionen zu setzen oder Events an ein Objekt zu binden. Für das Label-Widget sieht dieser beispielsweise so aus:
newtype Label a = Label GUIOBJECT deriving Eq -- ein (Label String) enthält Text, ein (Label Image) ein BildDieser Typ kann weitere Objekt-spezifische Felder haben, das ist eine Frage der individuellen Implementierung. Er enthält jedoch immer ein Feld des Typs
GUIOBJECT (siehe übernächster Abschnitt).