Size: a a a

2020 July 20

IK

Ilya Kos in Haskell
а ты хочешь чтобы такая мапа автоматически из всех инстансов Foo появлялась?
источник

M

Maks in Haskell
да
источник

IK

Ilya Kos in Haskell
или из какого-то списка типов?
источник

M

Maks in Haskell
да, чтоб из всех инстансов формировалась мапа
источник

IK

Ilya Kos in Haskell
Если из всех инстансов, то без TH точно невозможно
источник

M

Maks in Haskell
это я понимаю
источник

M

Maks in Haskell
думал может кто готовое видел
источник

IK

Ilya Kos in Haskell
Потому что нет механизма получить "все инстансы"
источник

IK

Ilya Kos in Haskell
как это через TH сделать не знаю, не шарю в TH
источник

к

кана in Haskell
в таком виде можно просто инстансы без значений хранить, в одном месте мы статически знаем есть ли инстанс или нет (как Refl), а дальше уже работает с инстансом как со значением динамически, можно в мапку сложить, и не знать есть он или нет на самом деле
источник

AR

Alexey Raga in Haskell
Врут, что вот так можно:
-- get a list of instances
getInstances :: Name -> Q [ClassInstance]
getInstances typ = do
 ClassI _ instances <- reify typ
 return instances
источник

DR

Denis Redozubov in Haskell
Maks
да, чтоб из всех инстансов формировалась мапа
reifyInstances?
источник

ЗП

Зигохистоморфный Пре... in Haskell
кана
в таком виде можно просто инстансы без значений хранить, в одном месте мы статически знаем есть ли инстанс или нет (как Refl), а дальше уже работает с инстансом как со значением динамически, можно в мапку сложить, и не знать есть он или нет на самом деле
Мб через fci можно сделать)
источник

M

Maks in Haskell
Denis Redozubov
reifyInstances?
скорее reifyModule c мемоизацией, модули проще статически задать, их меньше будет
источник

M

Maks in Haskell
а есть ли способ в рантайме все модули перечислить?
источник

M

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

KZ

Kirill Zaborsky in Haskell
а зачем в рантайме, если они известны при компиляции?
источник

M

Maks in Haskell
не нужно, в компайл тайме конечно, это я ступил
источник

λ

λoλi in Haskell
Приглашаю вас зарегестрироваться на онлайн конференцию Haskell.love!
https://haskelllove.eventbrite.com
Не забудьте заджойниться в наш слак - https://join.slack.com/t/haskelllove/shared_invite/zt-e8kssrqa-u5~FqdJtfC_qI2LVknwisQ
источник

АГ

Александр Гранин... in Haskell
λoλi
Приглашаю вас зарегестрироваться на онлайн конференцию Haskell.love!
https://haskelllove.eventbrite.com
Не забудьте заджойниться в наш слак - https://join.slack.com/t/haskelllove/shared_invite/zt-e8kssrqa-u5~FqdJtfC_qI2LVknwisQ
Да, ребят, поддерживаю. Там будет очень много классных спикеров!
источник