Существуют ли расширения языка или языки-потомки Haskell, которые предпочитают выразительность, особенно в работе с экземплярами?

Временами я сталкиваюсь с "особенностью", что Haskell соответствует только главам экземпляров, а именно,

instance (a ~ NewDataTyp b) => C a

теперь будет соответствовать любому типу, т.е. написание еще одного объявления экземпляра C в вашей программе будет ошибкой, даже если оно не может конфликтовать из-за контекста a ~ NewDataTyp b. Иногда это требует больших усилий для преодоления; мне пришлось перестроить сотни строк кода, чтобы избежать этого ограничения.

Существуют ли расширения языка или языки-потомки (Curry? Agda?), которые разработаны с более высоким приоритетом выразительности? Это может принести в жертву (а) открытость мира типовых классов (б) полиномиальное время проверки типов.

edit -- для тех, кто интересуется вопросом, эта страница также может быть интересна: http://www.haskell.org/haskellwiki/Future_of_Haskell

8
задан gatoatigrado 27 January 2012 в 05:07
поделиться