@Override
 public Maybe<Object> getLocalRaw(HasConfigKey<?> key) {
   return getLocalRaw(key.getConfigKey());
 }
 @Override
 public <T> T set(HasConfigKey<T> key, Task<T> val) {
   return set(key.getConfigKey(), val);
 }
 @Override
 public <T> T getConfig(HasConfigKey<T> key, T defaultValue) {
   T raw = delegate.getConfig(key, defaultValue);
   return resolve(key.getConfigKey(), raw);
 }
 @Override
 public <T> T get(HasConfigKey<T> key) {
   return get(key.getConfigKey());
 }
 @Override
 public <T> T getConfig(HasConfigKey<T> key) {
   T raw = delegate.getConfig(key);
   return resolve(key.getConfigKey(), raw);
 }