code: @Override
    public <T extends KTypePredicate<? super KType>> T forEach(T predicate) {
      if (hasEmptyKey) {
        if (!predicate.apply(Intrinsics.<KType> empty())) {
          return predicate;
        }
      }
  
      final KType[] keys = Intrinsics.<KType[]> cast(this.keys);
      for (int slot = 0, max = this.mask; slot <= max; slot++) {
        KType existing;
        if (!Intrinsics.isEmpty(existing = keys[slot])) {
          if (!predicate.apply(existing)) {
            break;
          }
        }
      }
  
      return predicate;
    }
docs: {@inheritDoc}