Desweiteren wird immer ein Konstruktor exportiert, der zur Erzeugung der Objekte dient. Hier unterscheiden wir zwei Schreibweisen:
new,
z.B. für ein Label:
newLabel :: Container par => par -> -- Vaterobjekt
[Config (Label a)] -> -- Konfigurationen
IO (Label a)
create,
z.B. für ein Rechteck auf einem Canvas:
createRectangle :: Canvas -> -- enthaltender Canvas
[Config Rectangle] -> -- Konfigurationen
IO Rectangle
pack
oder grid gepackt werden, eine Instanz der Klasse Container
sein (s.o.).
Weiter wird meist eine Liste von Objekt-Konfigurationen angegeben, um
deren Verarbeitung man sich im Konstruktor kümmern muß. Ein Beispiel für
einen Konstruktor gibt es später, zunächst jedoch etwas mehr zur internen
Repräsenatation der Objekte und deren Erzeugung und Konfiguration.