Ответ 1
Scala 2.8 добавлена система определения приоритетов для имплицитов. Он объяснил в этом SIP для новых массивов Java:
При сравнении двух разных применимых альтернатив перегруженного метода или неявного метода каждый метод получает одно очко за более конкретные аргументы и еще одно значение для определения в соответствующем подклассе. Альтернатива "выигрывает" над другой, если она получает большее количество очков в этих двух сравнениях
заключая, что, если альтернативы имеют одинаковые типы аргументов, тот, который определен в подклассе выигрывает. Поэтому я считаю, что вы можете объявить импликации следующим образом:
trait LowPriorityImplicits {
//lower priority conversions
}
object HighPriorityImplicits extends LowPriorityImplicits {
//higher-order ones here
}