@Override
    public int hashCode() {
        return Objects.hash(matchAny, value, negation);
    }
@Test
    public void testHashCode() {
        Match<String> m1 = Match.ifValue("foo");
        Match<String> m2 = Match.ifNotValue("foo");
        Match<String> m3 = Match.ifValue("foo");
        Match<String> m4 = Match.ifNotNull();
        Match<String> m5 = Match.ifNull();

        assertTrue(m1.hashCode() == m3.hashCode());
        assertFalse(m2.hashCode() == m1.hashCode());
        assertFalse(m4.hashCode() == m5.hashCode());

    }