Don't autocompact before enumeration
Naming things
Don't leak _weakObjects when resizing
Add an option to enforce conformance to a protocol