application "foo"; $foo=new Foo(A=>"start"); print $foo->A; print $foo->B; $other_foo=new Foo(A=>"other_start"); print $other_foo->A; print $other_foo->D; print join ", ", $other_foo->list_properties(); $third_foo=new Foo(A=>"third_start"); print join ", ", $third_foo->list_properties(); $s=$third_foo->get_schedule("D"); print join "\n", $s->list; $s->apply($third_foo); print join ", ", $third_foo->list_properties(); $t=typeof $foo; print join(", ", sorted_uniq(sort { $a cmp $b } map { keys %{$_->properties} } $t, @{$t->super}));