def f(fut: Future[Int])(using ExecutionContext): Future[String] =вместо
fut.map(_.toString)
def f(fut: Future[Int])(implicit ec: ExecutionContext): Future[String] =из второй скалы.
fut.map(_.toString)
Контекстные параметры очень часто нужны просто чтобы прокинуть их дальше или задать ограничение на тип, поэтому в их именовании нет смысла. Так что с анонимными параметрами и когнитивная нагрузка на придумывание имени пропадает, и пространство имён не засоряется заведомо не используемыми значениями.
Подробнее о контекстных абстракциях хорошо написано в документации.