Was there a reason to change this from a List to a Set? We occasionally will have what seems to be duplicates (e.g. module from two different repositories having the same equals/hashcode) Within a repository, there may be what seems to be duplicate. For example, the KJV w/ apocrypha and the KJV w/o apocrypha are colliding wrt to description. I've seen some in the past that collide wrt to [NAME].

If there are no collisions these are equal in end result. If there are collisions, then the Set implementation is silently throwing away a seeming duplicate.