Я Scoo Noob, поэтому, пожалуйста, не стреляйте в меня, если это не поможет.
Предполагая это:
class MoreFilterOperations[Repr <% TraversableLike[T,Repr], T] (xs: Repr) {}
Хотелось бы что-нибудь подобное этой работе?
// t2fo is short for traversableToFilterOps
implicit def t2fo[Repr <% TraversableLike[T, Repr], T](xs: Repr) =
new MoreFilterOperations[Repr, T](xs)
// m2fo is short for mapToFilterOps
implicit def m2fo[Repr <% Map[K, V] <% TraversableLike[(K,V), Repr], K, V]
(xs: Repr) = new MoreFilterOperations[Repr, (K, V)](xs)
Это должно работать, потому что (согласно моей книге .. Программирование Scala, p264) следующее определение метода с границей вида:
def m [A <% B](arglist): R = ...
Фактически оно совпадает с определением этого метода:
def m [A](arglist)(implicit viewAB: A => B): R = ...