Size: a a a

2021 January 16

JS

Jerzy Syrowiecki in Haskell
Andrey Vlasov
Почему не сделать
instance (ISO b a) => ISO a b
и
instance (ISO a b) => MyClass a b
первая строчка рекурсивно в себя уходит
источник

IO

I O in Haskell
И еще overlapping c любым другим инстансом, так что там нужен INCOHERENT
источник

IK

Ilya Kos in Haskell
Jerzy Syrowiecki
там выше грязный хак, но вообще так не надо делать, потому что когда результат компиляции одного модуля зависит от наличия импортов в десятом, — это плохо
Буквально любое применение type classes
источник

AA

A64m AL256m qn<co... in Haskell
нет, практически любое как раз не зависит
источник

IK

Ilya Kos in Haskell
импортнул – компилится, не импортнул – не комплиится
источник

AA

A64m AL256m qn<co... in Haskell
лол, как их не импортнуть-то?
источник

AA

A64m AL256m qn<co... in Haskell
почти всегда если класс импортнут или типдля которого инстанс есть - то и инстанс импортнут
источник

AA

A64m AL256m qn<co... in Haskell
это как раз нормальная ситуация, хотя некоторые исключения и возможны
источник

JS

Jerzy Syrowiecki in Haskell
Ilya Kos
импортнул – компилится, не импортнул – не комплиится
не компилится — это хорошо. а вот если меняется поведение, то хуже. хотя incoherent именно это и значит
источник

R

Roman in Haskell
Jerzy Syrowiecki
первая строчка рекурсивно в себя уходит
гхц кеширует констрейнты, так что оно к зацикливанию не должно приводить
источник

AA

A64m AL256m qn<co... in Haskell
если он не компилится из-за видимости инстанса, то это такой инстанс (сиротский, например) из-за которого он мог бы и скомпилится но поведение изменить, потому что этот чек ненадежно работает
источник

R

Roman in Haskell
Jerzy Syrowiecki
не компилится — это хорошо. а вот если меняется поведение, то хуже. хотя incoherent именно это и значит
с инкогерентными инстансами поведение может меняться если просто два констрейнта в сигнатуре местами поменять. Или два элемента в обычном списке
источник

AA

A64m AL256m qn<co... in Haskell
учел замечание, что функции выглядят одинаковыми и добавил в их боксы SRT, также добавил номера конструкторов из инфотейбла
источник

AA

A64m AL256m qn<co... in Haskell
эх, скоро можно будет из инфотейбла локейшон в коде брать (ценой бинарей в полгига размером)
источник

MK

Maxim Koltsov in Haskell
взял бы ещё 2 :: Int, чтобы S# не смущал
источник

MK

Maxim Koltsov in Haskell
а что такое SRT?
источник

AA

A64m AL256m qn<co... in Haskell
Maxim Koltsov
взял бы ещё 2 :: Int, чтобы S# не смущал
так не откуда взять что это Integer же
источник

MK

Maxim Koltsov in Haskell
во-первых там написать "nteger"
источник

AA

A64m AL256m qn<co... in Haskell
только делать базу соотвествий имен конструкторов и типов разве что
источник

MK

Maxim Koltsov in Haskell
во-вторых ты говорил
источник