W Scala możemy zdefiniować funkcję tożsamości typ poziomu dla niższych kinded typów jak tak,Czy możemy zdefiniować w systemie Scala funkcję tożsamości o wyższych poziomach na typie?
type Id[A] = A
możemy również zdefiniować coś podobnego dla wyższych-kinded typów? To znaczy. możemy wypełnić luki w,
type HKId[A[...]] = ...
tak, że coś podobnego do HKId [LIST] dostaje nas z powrotem do konstruktora typu listy?
Wiązanie wolnych nazw w takie rzeczy,
type Foo[X] = List[X]
val l : Foo[Int] = List(1, 2, 3)
może prowadzić nas się spodziewać, że tożsamość wyższej kinded typu poziom będzie wyglądać,
type HKId[A[X]] = A[X]
ale scalac narzeka tego typu X nie znaleziono na RHS.
Czy jest jakieś sprytne kodowanie, które wystarczy? A może po prostu nie jest to możliwe?
Nie można przetestować, ale co za dużo 'HKId [A [_]] = A'' – Dario
+1 dla mojej głowy eksplodować – delnan
@Dario Nie ..." błąd: typ A przyjmuje parametry typu "na RHS. –