Size: a a a

2021 January 06

AA

A64m AL256m qn<co... in Haskell
без параметрического полиморфизма чтоль?
источник

к

кана in Haskell
кана
а sop по тайплевел спискам траверсит все таки
короче нет, с generics-sop все то же самое, просто весь этот инстанс-траверсинг спрятан за удобными функциями
источник

к

кана in Haskell
а хм ну или нет
источник

AA

A64m AL256m qn<co... in Haskell
ну можно еще на ГАДТ (синглетонах) вместо инстансов
источник

AA

A64m AL256m qn<co... in Haskell
а типы матчить нельзя, только на тайплевеле где forall на самом деле не forall, а прости господи, foreach
источник

к

кана in Haskell
собственно вот
источник

к

кана in Haskell
так что тоже если не весь, то куча кода c generics-sop тоже генерируется в компайлтайме
источник

к

кана in Haskell
в рантайме это lens-aeson
источник

к

кана in Haskell
а как вообще линзами собирать какие-то комплексные структуры-то, не могу понять, чтобы линзы эффективно джойнились
источник

к

кана in Haskell
data X = X Int String
data Y = Y String Int
(X 1 "2", 3)

как из этого линзами получить Y "2" 1, матча X только один раз?
источник

MK

Maxim Koltsov in Haskell
кана
а как вообще линзами собирать какие-то комплексные структуры-то, не могу понять, чтобы линзы эффективно джойнились
> хаскель
> эффективно
источник

JS

Jerzy Syrowiecki in Haskell
что можно сделать, чтобы Hackage снова стал собирать загружаемые на него пакеты?
источник

ЖК

Жук Короед in Haskell
newtype Foo = Foo Int
foo = coerce (+3) :: Foo -> Foo
источник

ЖК

Жук Короед in Haskell
Почему GHC не может вывести 3 :: Int если я не укажу этого явно?
источник

ЖК

Жук Короед in Haskell
Couldn't match representation of type `Integer` with that of `Int` arising from a use of `coerce`
источник

JS

Jerzy Syrowiecki in Haskell
Жук Короед
Почему GHC не может вывести 3 :: Int если я не укажу этого явно?
не из чего это выводить. coerce потенциально к вообще любым типам применим
источник

ЖК

Жук Короед in Haskell
И в случае
foo = coerce (+ (3 :: Int)) (Foo 15)
Он не может вывести тип coerce (+ (3 :: Int)
источник

JS

Jerzy Syrowiecki in Haskell
Жук Короед
И в случае
foo = coerce (+ (3 :: Int)) (Foo 15)
Он не может вывести тип coerce (+ (3 :: Int)
здесь аналогично. любой тип может быть на входе и любой тип на выходе
источник

к

кана in Haskell
newtype X = X Int

instance Num X where
 X a + X b = X (a + b + a)
источник

к

кана in Haskell
(+ 3) может так же подходить и под X, не только под Int
источник