Что означает * в тестах?

В тестах кошек, * встречается как параметр типа, например, здесь:

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)

Я знаю, что компилятор переводит это в функцию уровня типа, но почему? Где это определяется? Это часть спецификации языка или часть кошек (или одна из ее зависимостей)?

1 ответ

Решение

Это плагин для компилятора kind-Projector, который переводит типы со звездочками в лямбды.

https://github.com/typelevel/kind-projector

Прежний синтаксис был с вопросительными знаками, текущий - со звездочками.

Другие вопросы по тегам