http://udpn.livejournal.com/ ([identity profile] udpn.livejournal.com) wrote in [personal profile] metaclass 2012-12-19 11:06 am (UTC)

>> Я правильно понял, вы научились в 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 Единственная известная мне система, где полиморфная рекурсия тайпчекается, это исчисление Милнера-Майкрофта, для которого, походу, ещё даже нет доказательства разрешимости тайпчека.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting