docs: @Provides
    @Singleton
    ImmutableMap<String, ? extends SoyFunction> provideSoyFunctionsMap(
        Set<SoyFunction> soyFunctionsSet) {
      Map<String, SoyFunction> mapBuilder = new LinkedHashMap<>();
      for (SoyFunction function : soyFunctionsSet) {
        SoyFunction old = mapBuilder.put(function.getName(), function);
        if (old != null && !old.getClass().getName().equals(function.getClass().getName())) {
          throw new IllegalStateException(
              "Found two functions with the same name: '"
                  + function.getName()
                  + "' and different implementations: "
                  + function
                  + " vs "
                  + old);
        }
      }
      return ImmutableMap.copyOf(mapBuilder);
    }