I am considering creating a VM for Self with some language extensions and would like comments:
1) I am considering making the inheritance of structural slots declarative. Rather than listing the copydowns in each child object, allowing the parent to annotate a slot as copied. The child objects would still need to be able to exclude those they replace with behavior.
2) I am considering adding an annotation to a slot that will cause it to be cloned when the object is cloned.
These ideas come from working with modeling where there is more declarative work. The items above would also need syntax to support textual definition of those aspects. For example 2 above could be <slot>+ to indicate aggregation. The idea is to reduce errors and reduce code to manage these aspects of a system.
Let me know what you think, or if there are good reasons to leave it in code.