published as new module deep-equal2