code: public V put(K pKey, V pValue) {
          if (!pKey.isCompatibleValue(pValue)) {
              throw new IllegalArgumentException("incompatible value for key");
          }
          return entries.put(pKey, pValue);
      }
docs: Associates the specified value with the specified key in this map.
  If the map previously contained a mapping for
  the key, the old value is replaced.
  
  @param pKey   key with which the specified value is to be associated.
  @param pValue value to be associated with the specified key.
  
  @return previous value associated with specified key, or {@code null}
  if there was no mapping for key.  A {@code null} return can
  also indicate that the map previously associated {@code null}
  with the specified pKey, if the implementation supports
  {@code null} values.
  
  @throws IllegalArgumentException if the value is not compatible with the
  key.
  
  @see TypedMap.Key