Metoda przyjmująca niejawne CanBuildFrom nie działa z rozszerzeniem eta?

Mam następującą metodę:

def firstAndLast[CC, A, That](seq: CC)(implicit asSeq: CC => Seq[A], cbf: CanBuildFrom[CC, A, That]): That = {
  val b = cbf(seq)
  b += seq.head
  b += seq.last
  b.result
}

Widzieć:Metoda pobierająca Seq [T], aby zwrócić String zamiast Seq [Char] dla uzasadnienia. W pierwszym przypadku działa jak urok, ale nie kompiluje się w drugim:

List("abc", "def") map {firstAndLast(_)}
List("abc", "def") map firstAndLast

Dający:

error: No implicit view available from CC => Seq[A].
List("abc", "def") map firstAndLast

Masz pomysł, jak ulepszyć tę deklarację, aby uniknąć dodatkowego pakowania? Wydaje się, że eta-expand jest problemem (?)