Scala uses implicits, not named instances. I don't think Ed's talk about type class coherence said anything about named instances, if I recall correctly. His point is that no matter which "path" you choose when solving constraints, you should end up at the same point.