_equals now needs to take an extra arg for recursive equality checking.