Fair enough. Maybe I have a better real-world example that seems to trip up people that I "know":
class Foo { String toString() {"aa"} } assert new Foo() == "aa" assert new Foo() == "aa" | | aa false Taking your proposal, '"aa" as Foo' is not valid, so I'd rather see output like '"aa" (Foo)'. But that would be noisy, so ideally I'd like to see that only if the output is counter-intuitive, although clearly I have no idea if that's feasible. I think I disagree that the format for the entire results need be the same as that for partial results. In the example above, better formatting for strings would possibly make it even less intuitive.