docs: private Object ignoreArgumentCase(final Object argument, final boolean shouldIgnoreCase) {
  		if (!shouldIgnoreCase) {
  			return argument;
  		}
  		if (argument instanceof String) {
  			return ((String) argument).toLowerCase();
  		}
  		final List<String> lowered = new LinkedList<>();
  		if (argument.getClass().isArray()) {
  			final String[] array = (String[]) argument;
  			for (final String string : array) {
  				lowered.add(string.toLowerCase());
  			}
  		} else {
  			@SuppressWarnings("unchecked")
  			final Iterable<String> iterable = (Iterable<String>) argument;
  			for (final Object object : iterable) {
  				lowered.add(((String) object).toLowerCase());
  			}
  		}
  		return lowered;
  	}