OS
NB: ‘M’ is a non-injective type family при вызове type family? https://gist.github.com/oshyshko/92c1687de65d26d79c310f67ef79963dSize: a a a
OS
NB: ‘M’ is a non-injective type family при вызове type family? https://gist.github.com/oshyshko/92c1687de65d26d79c310f67ef79963dMK
OS
YS
-- To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
-- When checking the class method:
-- runDb :: forall db a. Db db => M db a -> IO a
-- In the class declaration for ‘Db’
-- |
-- 12 | runDb :: (M db) a -> IOYS
OS
OS
YS
main :: IO ()
main = do
db <- mkStmDb
id1 <- runDb @StmDb $ nextId db попробуйтеYS
OS
YS
runDb не ясно, какой инстанс братьYS
db восстановить M db мы не можемYS
OS
StmDb через вызов mkStmDb. Как тогда можно прагматично решить эту проблему используя type families (если это возможно)? Хочется иметь 1 интфейс и несколько реализаций (stm, SQL etc.)YS
OS
YS
runDb @Mock или runDb @AppYS
YS