Provide apply method for CollectionType
Add hashCode methods where required
Add mergeUp

And rename mergeWith to mergeDown