Size: a a a

2021 June 01

J

John Roe in Haskell
Да. И горжусь этим!
источник

YS

Yan Shkurinskiy in Haskell
чтобы разрешить неоднозначность
источник

OS

Oleksandr Shyshko in Haskell
а если внутри бизнес логики несколько вызовов runDb? (анлогично run, и хочется тестировать `run`)
источник

YS

Yan Shkurinskiy in Haskell
в каждый передавать
источник

YS

Yan Shkurinskiy in Haskell
можно написать один раз обёртку
источник

YS

Yan Shkurinskiy in Haskell
runDb' = runDb @m
источник

YS

Yan Shkurinskiy in Haskell
где m будет экзистенциальная монада
источник

YS

Yan Shkurinskiy in Haskell
в которой функция бизнес-логики
источник

YS

Yan Shkurinskiy in Haskell
можно по разному, наверное)
источник

к

кана in Haskell
тут же вроде достаточно явно дб передать
источник

к

кана in Haskell
но два раза придется вроде
источник

к

кана in Haskell
runDb @db $ nextId @db
источник

OS

Oleksandr Shyshko in Haskell
как бы да, но хочется оставить run полиморфным, чтобы ему можно было скармливать различные реализации Db
источник

к

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

к

кана in Haskell
так и оставляй полиморфным
источник

YS

Yan Shkurinskiy in Haskell
полиморфное не то же самое, что неопределённое)
источник

к

кана in Haskell
@db же, а не какой-то @SomeDb
источник

к

кана in Haskell
тут db это типопеременная из сигнатуры
источник

к

кана in Haskell
в тайпфемели
источник

OS

Oleksandr Shyshko in Haskell
вариант c добавлением неиспользуемого параметра в runDb работает https://gist.github.com/oshyshko/92c1687de65d26d79c310f67ef79963d
источник