In fact, I believe the strictness of this `and` here is the main reason why there are so many test failures in this branch.