writing these kind of assertions was a real pain, since the output has a very unreadable diff.

I actually found myself doing:
``` ruby
it 'shows a proper diff for failure message' do
        matcher = all(eq('A'))
        matcher.matches?(['A', 'A', 'A', 'C', 'A'])
        expect(matcher.description).to eq(dedent <<-EOS)
          |expected ["A", "A", "A", "C", "A"] to all eq "A"
          |
          |object at index "3" failed to match:
          |expected: "A"
          |     got: "C"
          |
          |(compared using ==)
          |
        EOS
do
```
anyone else had the same issue?