Make distinctions between comutative and noncomutative collections for semantic equals

For comutative collection we consider the children as a multiset
For noncomutative collections we consider the children as a set