@Override
    public final boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof Matcher)) {
            return false;
        } else {
            Matcher<?> other = (Matcher<?>) o;
            return getMemberName().equals(other.getMemberName()) && getValue().equals(other.getValue());
        }
    }
Visits the Matcher union type.

@param visitor Visitor to apply.
@param <U> The type returned by the visitor.
@return Returns the return value of the visitor.
smithy-waiters/src/main/java/software/amazon/smithy/waiters/Matcher.java