implicitly
- это просто удобный метод для поиска неявного значения, которое, как вы знаете, уже существует .Поэтому он не может быть скомпилирован, если в области действия нет такого неявного значения.
Возможный вариант использования - когда вы используете сокращенный синтаксис для границ контекста:
def find[C: Numeric](a: C, b: C): C = implicitly[Numeric[C]].plus(a, b)
Конечно, в этом примере, явная форма менее многословна
def find[C](a: C, b: C)(implicit n: Numeric[C]): C = n.plus(a, b)
Более подробные объяснения вы найдете в этой теме Stackoverflow .
Что, я думаю, вы имели в видуваш метод скорее
def find[C <: Business](id: String)(implicit fun: DBObject => C) =
collection.findOneByID(id).map(fun)