Size: a a a

2021 March 28

к

кана in Haskell
ни разу не было проблем с тайпклассами без проксей
источник

к

кана in Haskell
class X a where x :: Int

instance X Int where x = 1
instance X String where x = 2

f = x @Int + x @String
источник

L

Lierdakil in Haskell
кана
хм, это как?
Порядок переменных явно задать нельзя. Поэтому с typeapplications получается "либо всё либо ничего" часто. Я наполовину сплю, поэтому пример не возьмусь писать, но недавно плясал с бубном. Естественно переменных типов должно быть больше 1.
источник

O

Ortofax in Haskell
id v = v имеет тип forall a.a -> a;, а это типоаргумент, т.е. id 1 это ещё и, грубо говоря, id @Int 1. во всяких там агдах id : {a:Type} (v:a) -> a - у функции явно два аргумента, но первый (a) неявный и подставляется компилятором, а второй (v) - явный
источник

к

кана in Haskell
Lierdakil
Порядок переменных явно задать нельзя. Поэтому с typeapplications получается "либо всё либо ничего" часто. Я наполовину сплю, поэтому пример не возьмусь писать, но недавно плясал с бубном. Естественно переменных типов должно быть больше 1.
у тайпаппов нет проблемы "или все или ничего", потому что есть улитки @_
источник

к

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

L

Lierdakil in Haskell
когда класс с 4-5 переменными и компилятору надо подсказать последнюю -- уж лучше прокси чем @_ @_ @_ @_.
источник

к

кана in Haskell
ну, это не похоже на "не получается"
источник

L

Lierdakil in Haskell
хочется внятного читаемого синтаксиса
источник

L

Lierdakil in Haskell
ок, "красиво не получается"
источник

L

Lierdakil in Haskell
это я слово потерял пока из головы в клавиатуру шло
источник

к

кана in Haskell
красиво тоже получается!

f :: forall c b a. ...
f = g
источник

к

кана in Haskell
и в моей голове это все еще намного лучше проксей
источник

к

кана in Haskell
костыльности которых просто нет оправдания
источник

L

Lierdakil in Haskell
это не "красиво", это затычка.
источник

к

кана in Haskell
а прокси это красиво и не затычка?
источник

L

Lierdakil in Haskell
На самом деле прокси с type applications вполне терпимо, i.e. Proxy @String
источник

L

Lierdakil in Haskell
Но тут конечно вкусовщина
источник

L

Lierdakil in Haskell
Всё затычки
источник

к

кана in Haskell
а потом несколько _ в аргументах, или пустой Proxy на выводимые аргументы
источник