В Scala мы можем определить функцию тождества типа уровня для более низкого kinded типов, как это так,Можем ли мы определить высокоуровневую идентификационную функцию уровня в Scala?
type Id[A] = A
Может ли мы также определить что-то подобное для высокодоходных kinded типов? То есть. мы можем заполнить пробелы в,
type HKId[A[...]] = ...
так, что-то похожее на HKId [Список] возвращает нас к конструктору типа списка?
Связывание свободных имен в таких вещах, как,
type Foo[X] = List[X]
val l : Foo[Int] = List(1, 2, 3)
может привести нас ожидать, что идентичность высшего kinded уровень типа будет выглядеть,
type HKId[A[X]] = A[X]
но scalac жалуется, что тип X не найден на RHS.
Есть ли какая-то умная кодировка, которая будет делать трюк? Или это просто невозможно сейчас?
Не могу проверить, но что из себя: HKId [A [_]] = A' – Dario
+1 для того, чтобы моя голова взорвалась – delnan
@ Dario No ... "error: type A принимает параметры типа" на RHS. –