нету нигде в скопе, оно без него работает.
Так то понятно, будет осуществляться поиск Writeable[A] в компаньоне A. Или я че то не понимаю
в строке def jsonError(errors: TraversableOnce[JsonError]) = Result(errors) компилятору надо зарезолвить нужный имплисит Writeable[TraversableOnce[JsonError]] - все импилиситы которые находятся в в компаньоне Writeable и возвращают подходящий тип Writeable[T] - попадают в скоуп. в этом случае он видит подходящую сигнатуру (по возвращаемому типу) - implicit def traversableWriteable[A: Writeable]: Writeable[TraversableOnce[A]] = ??? и тут ему нужно зарезолвить уже Writeable[A] (чтобы воспользоваться этим имплиситом, в данном случае Writeable[JsonError] ) - опять таки в рамках скоупа все той же первой строки. имплисит для Writeable[JsonError] смотрится не только в компаньоне Writable, но и в компаньоне JsonError это то о чем Алексей выше сказал - ищутся во всех компаньонах всех типов... ) и соответственно в компаньоне JsonError он видит подходящий имплисит Writeable[JsonError]. так понятно?
Обсуждают сегодня