Here is an alternative: 1. classes are unique by default, they cannot be shared. No GC or RF required, and covers 90% of objects. 2. To share, retype as GC, the requirement being that it does not have a destructor.