code: @SuppressWarnings({"TypeParameterUnusedInFormals", "unchecked"})
    private <T> T fetch(final String id) {
      checkNotNull(id);
      checkArgument(!id.isEmpty());
      final T ret = (T) idMap.get(id);
      if (ret == null) {
        throw new EREException(String.format("Lookup failed for id %s.", id));
      }
      return ret;
    }
docs: no way around unchecked cast for heterogeneous container