docs: @SuppressWarnings("unchecked")
      public <T> T get(Option<T> key) {
          T v = (T) this.values.get(key);
          if (v == null) {
              v = key.defaultValue();
              this.values.put(key, v);
          }
          return v;
      }