у меня такое:
type PostgresT m = ReaderT Connection (StateT TxState m) -- Убрал RWST
type TxState = HMap TxStateKeySpace
data TxStateKeySpace
data HMap keySpace where
HMap :: Map Text (PropertyValue keySpace) -> HMap keySpace
data PropertyValue keySpace where
PropertyValue :: (IsKeySpaceProperty keySpace name t) => Key keySpace name t -> t -> PropertyValue keySpace
Т.е. наверняка ж можно, как тут уже рекомендовали, для реализации MonadUnliftIO StateT просто через MVar перебросить?
но тогда лучше ReaderT MVar, чем StateT
Пожалуй, хороший вариант. Но да, надо ещё что-то с потоками придумать...
Обсуждают сегодня