Seeing this full output (which is quite good -- nice work!) I'm noticing a few things that could be improved:

* Given that the individual failure messages are essentially sub-expressions, I think it would be good for them to be indented -- one indentation level for the `object at...` message, and one additional indentation level for the message under that.
* It would be nice to not have two blank lines between items -- it seems like to much space, IMO.

Putting this together with my feedback above about the integer indexes, I'm imagining output like this:

```
expected ["A", "B", "A", "C", "A"] to all eq "A"

  object at index 1 failed to match:
    expected: "A"
         got: "B"

    (compared using ==)

  object at index 3 failed to match:
    expected: "A"
         got: "C"

    (compared using ==)
```

You can take a look at the compound matchers for ideas of how we've done this kind of formatting elsewhere:

https://github.com/rspec/rspec-expectations/blob/0e3e382a632bcf9d26a781da6261bf117b36f931/lib/rspec/matchers/built_in/compound.rb#L35-L59