Парсер не был уверен, куда положить начало анонимной функции. Иногда вы можете решить эту проблему, добавив еще одну пару скобок (хотя и не всегда):
val m: Map[String, (List[String])=>Loader] =
Map("x" -> (Loader("x", "x1", _:List[String])))
Я не вижу здесь двусмысленности, так что, возможно, она не была достаточно умной, чтобы понять это. Я думаю, парсер упустил возможность иметь анонимную функцию сразу после ->
(которая также является конструкцией библиотеки и использует магию неявного и все остальное, что делает цикл анализа маленьким парсером).
Когда вы пишете это как явный кортеж, все будет работать нормально.
val m: Map[String, (List[String])=>Loader] =
Map(("x", Loader("x", "x1", _:List[String])))