Я не использовал библиотеку и не пробовал ее, но:
Учитывая, что query
имеет следующую подпись:
query :: (MonadClient m, Tuple a, Tuple b, RunQ q) => q R a b -> QueryParams a -> m [b]
Ваша подпись должна быть (при условии, что оба столбцаstrings)
selectAllUser :: IO [Identity (Text,Text)]
Объяснение: в настоящее время вы присваиваете ему тип
selectAllUser :: IO [Identity Text]
, который также устанавливает b
из query
в Text
, и поэтому он пытается вести себя какесли в строке был только один столбец.