docs: public static <T> List<T> reverse(List<T> self, boolean mutate) {
          if (mutate) {
              Collections.reverse(self);
              return self;
          }
          int size = self.size();
          List<T> answer = new ArrayList<T>(size);
          ListIterator<T> iter = self.listIterator(size);
          while (iter.hasPrevious()) {
              answer.add(iter.previous());
          }
          return answer;
      }