LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

data T = A Int | B String | C Double

Выдаёт: «Your function is not total»

А где здесь полиморфизм-то? Я об анонимных суммах говорил, типа Which из https://hackage.haskell.org/package/data-diverse-4.7.0.0/docs/Data-Diverse-Which.html или Variant из https://hackage.haskell.org/package/HList-0.5.0.0/docs/Data-HList-Variant.html.

В любом случае, я верю что GHC это должен уметь. Вопрос в том, можно ли писать более интересные инварианты на LH, которые GHC либо не умеет, либо умеет но через такую задницу, что лучше не трогать.

Условие ведь (почти) произвольная функция.

Вот именно, что «почти».

Исправление hateyoufeel, :

data T = A Int | B String | C Double

Выдаёт: «Your function is not total»

А где здесь полиморфизм-то? Я об анонимных суммах говорил, типа Which из https://hackage.haskell.org/package/data-diverse-4.7.0.0/docs/Data-Diverse-Which.html или Variant из https://hackage.haskell.org/package/HList-0.5.0.0/docs/Data-HList-Variant.html.

Условие ведь (почти) произвольная функция.

Вот именно, что «почти».

Исходная версия hateyoufeel, :

data T = A Int | B String | C Double

Выдаёт: «Your function is not total»

А где здесь полиморфизм-то? Я об анонимных суммах говорил, типа Which из https://hackage.haskell.org/package/data-diverse-4.7.0.0/docs/Data-Diverse-Which.html.

Условие ведь (почти) произвольная функция.

Вот именно, что «почти».