add deep-equal for map