code: private static <T> ImmutableList<T> concatImmutableLists(
        ImmutableList<T> first, ImmutableList<T> second) {
      if (first.isEmpty()) {
        return second;
      }
      if (second.isEmpty()) {
        return first;
      }
  
      return ImmutableList.<T>builder().addAll(first).addAll(second).build();
    }
docs: Concatenates two ImmutableList instances. If either input is empty, the other is returned;
  otherwise, a new ImmutableList instance is created that contains the contents of both
  arguments.