> Since the matcher instance doesn't have a reference to the ExpectationHandler that called it, it can't know if the expectation is in the positive (expect(...).to) or negative (expect(...).to_not) form, so it can't know if the hint in the deprecation message should be expect(your_collection.words).to eq(3) or expect(your_collection.words).to_not eq(3) for example.

This is exactly why the matcher protocol includes an optional `does_not_match?` method for when you need slightly different logic for the negative case (beyond simply negating `matches?`).  For an example, see the `respond_to` matcher:

https://github.com/rspec/rspec-expectations/blob/4ccacb8a720aa671374bed0e225d20e6e092271f/lib/rspec/matchers/built_in/respond_to.rb#L10-L17