code: public static <K> PoolKey<K> lookup(K key) {
  	if (key == null) 
  	  throw new IllegalStateException("Key must not be null");
  	return new PoolKey<K>(key);
    }
docs: Creates a new Pool Key wrapping the specified key of type {@code K}
  
  @param <K> the wrapped inner pool key type
  @param key the wrapped key
  @return PoolKey