docs: public Set<Class<?>> keySet() {
  
      return new AbstractSet<Class<?>>() {
        @Override
        public Iterator<Class<?>> iterator() {
          return new Iterator<Class<?>>() {
            private int i; // = 0;
  
            public boolean hasNext() {
              return i < size;
            }
  
            public Class<?> next() {
              try {
                return keys[i++];
              } catch (ArrayIndexOutOfBoundsException aioobe) {
                throw new NoSuchElementException("ArrayCoreMap keySet iterator exhausted");
              }
            }
  
            @SuppressWarnings("unchecked")
            public void remove() {
              ArrayCoreMap.this.remove((Class)keys[i]);
            }
          };
        }
  
        @Override
        public int size() {
          return size;
        }
      };
    }