@Override
    protected void collectEncodings(Collection<EncodingInfo> encodings) {
      Optional<DeclaringPackage> parent = namedParentPackage();
      if (parent.isPresent()) {
        parent.get().collectEncodings(encodings);
      }
      super.collectEncodings(encodings);
    }
Name is the only equivalence attribute. Basically packages are interned by name.
@return package name
value-processor/src/org/immutables/value/processor/meta/Proto.java