types Class1 = autocons system |[ var O2 : Class2 = new (Class2); flag : bool = false methods doSomething = flag := true end actions ctr init = requires true : O2.init(self) end do init od ]| ; Class2 = system |[ var O1 : Class1 = nil methods init (object : Class1) = requires (object <> nil) : O1 := object end end ]| system Class1 [] Class2