code: public static <T> List<T> plus(List<T> left, T right) {
          return (List<T>) plus((Collection<T>) left, right);
      }
docs: Create a List as a union of a List and an Object.
  This operation will always create a new object for the result,
  while the operands remain unchanged.
  <pre class="groovyTestCase">assert [1,2,3] == [1,2] + 3</pre>
  
  @param left  a List
  @param right an object to add/append
  @return the resulting List
  @since 2.4.0