code: def merge_attributes(other, attributes=nil, matches=nil, &filter)
        if Hash === other then
          # take the transitive closure of the specimens
          spcs = other.delete(:specimens)
          if spcs then
            spcs = [spcs] if CaTissue::Specimen === spcs
            # take the transitive closure of the root specimens in the hierarchy
            other[:specimens] = spcs.select { |spc| spc.parent.nil? }.transitive_closure(:children)
          end
        end
        # delegate to Collectible
        super
      end
docs: Merges the other object into this SpecimenCollectionGroup. This method augments
   {CaTissue::Collectible#merge_attributes} as follows:
   * Adds the transitive closure of each non-derived Specimen in the source.
  
   @param (see CaTissue::Collectible#merge_attributes)
   @option (see CaTissue::Collectible#merge_attributes)