Size: a a a

2020 November 12

IK

Ilya Kos in Haskell
Это просто то, как работает TH
источник

IK

Ilya Kos in Haskell
Потому что TH может, например, зависеть от доступных инстансов
источник

IK

Ilya Kos in Haskell
И они могли поменяться
источник

IK

Ilya Kos in Haskell
И конмпилятор не может узнать, зависит мой TH от этого или нет
источник

IK

Ilya Kos in Haskell
Поэтому перевыбирает весь модуль
источник

AV

Alexander Vershilov in Haskell
А ну профиг
источник

IK

Ilya Kos in Haskell
И с TH все равно тащится еще одно расширение GHC
источник

IK

Ilya Kos in Haskell
Поэтому непонятно что вы выигрываете)
источник

IK

Ilya Kos in Haskell
Одно расширение меняете на другое, более массивное с регрессией в хешировании сборок
источник

IK

Ilya Kos in Haskell
Как-то сомнительно
источник

DB

Danil Berestov in Haskell
А сколько шагов он пробует? Это захардкожено?
источник

DB

Danil Berestov in Haskell
При выводе инстанса
источник

AV

Alexander Vershilov in Haskell
Ты же значешь что делать если такой вопрос возникает?
источник

DB

Danil Berestov in Haskell
Я пытался лезть в код GHC, мне пока от него дурно
источник

AV

Alexander Vershilov in Haskell
Есть ответ проще
источник

DB

Danil Berestov in Haskell
Дока, понял
источник

DB

Danil Berestov in Haskell
Ща гляну
источник

AV

Alexander Vershilov in Haskell
10.8.3.5. Undecidable instances¶
Sometimes even the termination rules of Instance termination rules are too onerous. So GHC allows you to experiment with more liberal rules: if you use the experimental extension UndecidableInstances, both the Paterson Conditions and the Coverage Condition (described in Instance termination rules) are lifted. Termination is still ensured by having a fixed-depth recursion stack. If you exceed the stack depth you get a sort of backtrace, and the opportunity to increase the stack depth with -freduction-depth=n⟩.
источник

AV

Alexander Vershilov in Haskell
Ну я уже принёс
источник

AV

Alexander Vershilov in Haskell
Но схожить стоит, там вся конкретика
источник