boolean (@NotNull List<PyType> expected, @NotNull List<PyType> actual, @NotNull MatchContext matchContext) { final var size = Math.min(expected.size(), actual.size()); for (int i = 0; i < size; ++i) { if (!match(expected.get(i), actual.get(i), matchContext).orElse(true)) return false; } return true; }