Clonable provides a standard basis for adding deep cloneablity to a class via the standard dup and clone methods.
Cloneable was originally ported from Jim Weirich's Rake. The current version is the work of Ken Bloom.
CREDIT: Ken Bloom