docs: private static Optional<Module> instantiateWithPrivateConstructor(Class<?> clazz,
        Class<?>[] parameters,
        Object... paramVals)
        throws InvocationTargetException, IllegalAccessException, InstantiationException {
      final Constructor<?> constructor;
      try {
        constructor = clazz.getDeclaredConstructor(parameters);
      } catch (NoSuchMethodException e) {
        return Optional.absent();
      }
  
      final boolean oldAccessible = constructor.isAccessible();
      constructor.setAccessible(true);
      try {
        return Optional.of((Module) constructor.newInstance(paramVals));
      } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {
        throw e;
      } finally {
        constructor.setAccessible(oldAccessible);
      }
    }