public interface Copyable { public Object clone(); // guarantees deep clone }
Unanswered questions:
Should it extend Cloneble?
Cloneble
How to enforce the semantics of a deep copy?