private static boolean equalLists(
            List<? extends TypeMirror> a, List<? extends TypeMirror> b,
            Set<ComparedElements> visiting) {
        int size = a.size();
        if (size != b.size()) {
            return false;
        }
        // Use iterators in case the Lists aren't RandomAccess
        Iterator<? extends TypeMirror> aIterator = a.iterator();
        Iterator<? extends TypeMirror> bIterator = b.iterator();
        while (aIterator.hasNext()) {
            if (!bIterator.hasNext()) {
                return false;
            }
            TypeMirror nextMirrorA = aIterator.next();
            TypeMirror nextMirrorB = bIterator.next();
            if (!equal(nextMirrorA, nextMirrorB, visiting)) {
                return false;
            }
        }
        return !aIterator.hasNext();
    }
Utilities related to {@link TypeMirror} instances.

@author Gregory Kick
@since 2.0
android/annotation_processors/permission-requester-compiler/src/main/java/github/tornaco/permission/compiler/common/MoreTypes.java