Есть
GAT есть, HKT нет.
Кстати, а какие есть кейсы, которые HKT покрывает а GAT нет?
ХЗ @Psilon кажется что-то знал про выразимость HKT через GAT
trait HKT1 { type This<T>; } impl<A> HKT1 for Vec<A> { type This<T> = Vec<T>; }
ну начнем с того что GAT работает только в трейтах, а хкт - везде
Но есть ли что-то, что принципиально невыразимо без честного HKT?
а если будет везде, он станет хкт?
ну выразить можно всё если честно. В худшем случае ты просто напишешь кривой-косой интерпретатор хачкеля и оно будет работать)
Обсуждают сегодня