code: public <V> V demand(TypeSafeKey<?, V> key) throws NoSuchElementException {
          return get(key).orElseThrow(() -> new NoSuchElementException("Demanded value for key " + key + ", but couldn't find one."));
      }
docs: Retrieve the value at this key, throwing a {@link NoSuchElementException} if this key is unmapped.
  
  @param key the key
  @param <V> the value type
  @return the value at this key
  @throws NoSuchElementException if the key is unmapped