code: public static <T> List<T> unique(List<T> self, boolean mutate) {
          return (List<T>) unique((Collection<T>) self, mutate);
      }
docs: Remove all duplicates from a given List using Groovy's default number-aware comparator.
  If mutate is true, it works by modifying the original object (and also returning it).
  If mutate is false, a new collection is returned leaving the original unchanged.
  <pre class="groovyTestCase">
  assert [1,3] == [1,3,3].unique()
  </pre>
  <pre class="groovyTestCase">
  def orig = [1, 3, 2, 3]
  def uniq = orig.unique(false)
  assert orig == [1, 3, 2, 3]
  assert uniq == [1, 3, 2]
  </pre>
  
  @param self a List
  @param mutate false will cause a new List containing unique items from the List to be created, true will mutate List in place
  @return the now modified List
  @since 2.4.0