The fact that implicits (in Scala or in this proposal) are understood as a term elaboration problem guarantees that there is a nice user representation to understand what is happening: just show the elaborated term. The question of which interface is used to query this representation is important, but I wouldn't be too worried about it. As Leo said, Merlin should do it fine.
For compiler messages, given that there is a syntax for explicitly passing an implicit (foo {Bar}), I would expect passing an obviously-incorrect implicit (say foo {List}) to print an error message mentioning the correct elaborated implicit, just as we sometimes use the ( : unit) annotation to force the compiler to spit out its inferred type.