====== abstract ====== abstract verlangt von einem Identifier, dass Zugriffe zu diesem Identifier abgefangen werden können. mystruct contains value is abstract int; Der Zugriff auf Value kann in dieser Kompilier-Unit direkt auf das int schreiben und von dem int lesen. Extern muss allerdings eine Funktion mystruct__set__value bzw. mystruct__get__value gerufen werden, um das int zu verarbeiten. Diese werden automatisch angelegt. Ziel der Sache ist, dass man den Getter bzw. Setter überladen kann - auch nachträglich. mystruct contains value is abstract int { get := { print "get"; return .value; } set := { print "set"; .value = value; } } Das ganze funktioniert auch für Funktionen. mystruct contains func is abstract code := print "func"; Es wird eine Aufruffunktion exportiert, die wiederum mystruct::func::pre, mystruct::func::body und mystruct::func::post aufruft: func is code { .func.pre(); result : .func.body(); .func.post(); }