#!/usr/local/bin/io // a weakly linked list: // use WeakLinks as elements of this list, and use the WeakLinkList as their delegate as well BaseModel := Object clone do ( Course := Object clone ) WeakLinkList := Object clone do ( _list := List clone forward := method( // s := "forwarding " .. call message name .. "\n" // s print _list doMessage(call message, call sender) ) product := method(l2, writeln("INSIDE PRODUCT") BaseModel print self writeln("STARTING FOREACH") self foreach(elem, self writeln("inside body") ) self writeln("FINISHED PRODUCT") ) removeAllProtos() ) WeakLinkList append(1) WeakLinkList product(2)