169 похожих чатов

Здравствуйте. У меня следующая проблема. Есть тип Expr: data Expr =


App Expr Expr
| Lam Name Expr
| Var Name

Далее я написал простой тайпчекер:

check :: Expr -> InferM My.Type

Но, дальше мне теперь нужен Expr, где каждая нода аннотирована типом. Я, конечно, могу завести новый тип, изменить check и т д. Но это же хитрее можно решить. Через Fix на типах или как-то иначе...

Не могли бы Вы сообщить, как это правильнее решить?

2 ответов

5 просмотров

Не использовал, но мб подойдет https://hackage.haskell.org/package/hypertypes

Danila Danko
Не использовал, но мб подойдет https://hackage.has...

Тут есть сравнение с recursion-schemes и прочими

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
50
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
буквально один оставшийся вопрос при выполнении строчки mov eax, 5 операнд "5" будет присутствовать где-либо в памяти (любой), кроме как в памяти блока .code? подвопрос: как...
12
Всем ку. Подскажите, если задекларировал массив так: int arr[10] = {1, 2, 3, 4}, то в arr[4] будет мусор или нуль?
Sasha K
14
я не понимаю mov [r11+8],rcx и прочие. мы записываем значение из rcx, куда?
Bor
15
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
5
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
А какие расширения активно используются в промышленности? Именно идейные, по типу гадт, а не всякие оверлоадедстрингс
Степан
11
у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше): - "п1" --- виртуальный адрес, то есть тот, который ресолвится в "п...
Toideng
3
Guys Who’s kurdish on this group?
Hiwa Amiri
11
Карта сайта