code: public static final SerIterable listMultimap(final Class<?> keyType, final Class<?> valueType, final List<Class<?>> valueTypeTypes) {
          final ListMultimap<Object, Object> map = ArrayListMultimap.create();
          return new SerIterable() {
              @Override
              public SerIterator iterator() {
                  return multimap(map, Object.class, keyType, valueType, valueTypeTypes);
              }
              @Override
              public void add(Object key, Object column, Object value, int count) {
                  if (key == null) {
                      throw new IllegalArgumentException("Missing key");
                  }
                  if (count != 1) {
                      throw new IllegalArgumentException("Unexpected count");
                  }
                  map.put(key, value);
              }
              @Override
              public Object build() {
                  return map;
              }
              @Override
              public SerCategory category() {
                  return SerCategory.MAP;
              }
              @Override
              public Class<?> keyType() {
                  return keyType;
              }
              @Override
              public Class<?> valueType() {
                  return valueType;
              }
              @Override
              public List<Class<?>> valueTypeTypes() {
                  return valueTypeTypes;
              }
          };
      }
docs: Gets an iterable wrapper for {@code ListMultimap}.
  
  @param keyType  the key type, not null
  @param valueType  the value type, not null
  @param valueTypeTypes  the generic parameters of the value type
  @return the iterable, not null