docs: @SuppressWarnings("unchecked")
      public static <E> List<E> intersection(final List<E> list, final List<E> ... lists) {
          final Stack<List<E>> stack = new Stack<List<E>>();
          stack.push(list);
          for (int index = 0; index < lists.length; index += 1) {
            stack.push(intersection(stack.peek(), lists[index]));
          }
          return stack.peek();
      }