Intended to use in certain ArgumentMatchers.
When ArgumentMatcher fails, chance is that the actual object has the same output of toString() than
the wanted object. This looks weird when failures are reported.
Therefore when matcher fails but toString() yields the same outputs,
we will try to use the toStringWithType() method.