'Return True if ``self`` and ``other`` assign the same value to
to every feature.  In particular, return true if
``self[p]==other[p]`` for every feature path *p* such
that ``self[p]`` or ``other[p]`` is a base value (i.e.,
not a nested feature structure).
:param check_reentrance: If True, then also return False if
there is any difference between the reentrances of ``self``
and ``other``.
:note: the ``==`` is equivalent to ``equal_values()`` with
``check_reentrance=True``.'

def equal_values(self, other, check_reentrance=False):

    return self._equal(other, check_reentrance, set(), set(), set())
