>> Я правильно понял, вы научились в C++ наследоваться от bool? ADT Bool в С++: http://ideone.com/00TLJc Сast-constructor и implicit cast для Bool <-> bool добавить для пущей убедительности? >> нет расширяемых ADT >> Легко эмулируется через классы и RankNTypes. >> data Point a = Point { x : a, y : a } на z : a. >> Я что, обещал расширять типы, на расширение не рассчитанные? [когнитивный диссонанс] Подразумевается, что я сейчас побегу заменять ADT на композируемую систему классов типов с геттерами и сеттерами, сдабривать это Template Haskell поверх для преобразования ADT<>TC и создания инстансов, и всё это ради того, чтобы в Haskell у меня появилась вещь, которая есть в С++, O'Caml и Scala by design и никаких сложностей не вызывает? >> Ну блин, вы же видели мой пост в ЖЖ. http://migmit.livejournal.com/32688.html Ну таки там у вас ошибка, полиморфная рекурсия. Она накладывается на ошибку языка: дженерики, которые не подлежат type erasure.
UPD Единственная известная мне система, где полиморфная рекурсия тайпчекается, это исчисление Милнера-Майкрофта, для которого, походу, ещё даже нет доказательства разрешимости тайпчека.
no subject
ADT Bool в С++: http://ideone.com/00TLJc
Сast-constructor и implicit cast для Bool <-> bool добавить для пущей убедительности?
>> нет расширяемых ADT
>> Легко эмулируется через классы и RankNTypes.
>> data Point a = Point { x : a, y : a } на z : a.
>> Я что, обещал расширять типы, на расширение не рассчитанные?
[когнитивный диссонанс]
Подразумевается, что я сейчас побегу заменять ADT на композируемую систему классов типов с геттерами и сеттерами, сдабривать это Template Haskell поверх для преобразования ADT<>TC и создания инстансов, и всё это ради того, чтобы в Haskell у меня появилась вещь, которая есть в С++, O'Caml и Scala by design и никаких сложностей не вызывает?
>> Ну блин, вы же видели мой пост в ЖЖ. http://migmit.livejournal.com/32688.html
Ну таки там у вас ошибка, полиморфная рекурсия. Она накладывается на ошибку языка: дженерики, которые не подлежат type erasure.
UPD Единственная известная мне система, где полиморфная рекурсия тайпчекается, это исчисление Милнера-Майкрофта, для которого, походу, ещё даже нет доказательства разрешимости тайпчека.