// // pointers are awesome // class row { group @ my_group; "test" => string text; fun void set_text(string t) { t => text; } fun void set_group(group g) { g @=> my_group; } fun void activate() { my_group.set_active(this); <<< text, "activate" >>>; } fun void deactivate() { <<< text, "deactivate" >>>; } } class group { row @ active; fun void set_active(row n) { if( active != NULL ) { active.deactivate(); } n @=> active; } } group awesome; row row1; row row2; row1.set_text("row1"); row2.set_text("row2"); row1.set_group(awesome); row2.set_group(awesome); row1.activate(); <<< "", "" >>>; row2.activate(); <<< "", "" >>>; row1.activate();