add structural equality