Я видел два пути (один меньше другого) объявления implicit для шаблона типа в Scala.
implicit val instance1 = new Typeclass { def do = ??? }
implicit object instance2 extends Typeclass { def do = ??? }
Как они отличаются? Должны ли вы отдать предпочтение одному другому в определенное время? Я нахожу implicit val гораздо чаще, чем implicit object, и мне еще предстоит найти много ресурсов о implicit object.