docs: public static List transpose(List lists) {
          List result = new ArrayList();
          if (lists.isEmpty()) return result;
          int minSize = Integer.MAX_VALUE;
          for (Object listLike : lists) {
              List list = (List) DefaultTypeTransformation.castToType(listLike, List.class);
              if (list.size() < minSize) minSize = list.size();
          }
          if (minSize == 0) return result;
          for (int i = 0; i < minSize; i++) {
              result.add(new ArrayList());
          }
          for (Object listLike : lists) {
              List list = (List) DefaultTypeTransformation.castToType(listLike, List.class);
              for (int i = 0; i < minSize; i++) {
                  List resultList = (List) result.get(i);
                  resultList.add(list.get(i));
              }
          }
          return result;
      }