В тестах на кошках * встречается в качестве параметра типа, например, здесь:
*
checkAll("Nested[Eval, List, *]", DeferTests[Nested[Eval, List, *]].defer[Int])
(см. https://github.com/typelevel/cats/blob/master/tests/src/test/scala/cats/tests/NestedSuite.scala#L19)
Я знаю, что компилятор переводит егок функции уровня типа, но почему? Где она определена? Является ли она частью спецификации языка или частью кошек (или одной из ее зависимостей)?
Это плагин-компилятор доброго проектора, который переводит типы со звездами в тип lambdas
https://github.com/typelevel/kind-projector
Прежний синтаксис был с вопросительными знаками, текущий - со звездами.