Как создать гетерогенную карту SqlField без повторной реализации всех возможных SqlField в Haskell
Я хочу использовать
postgresql-simple
библиотека для создания карты или хэш-карты SqlValues. Я знаю, что одним из подходов к этому было бы переопределение всех SqlValue в один универсальный тип ala
data SqlValue = SqlInt Int
| SqlString String
| SqlJson Value
etc
Но мне интересно, есть ли более эффективный способ сделать это, где я могу создать карту, которая позволяет ее значению быть любым типом, реализующим
FromField
класс.
Можно ли хотя бы уменьшить накладные расходы, связанные с этим, используя
TypeFamilies
или что-то подобное, где я могу сделать, чтобы каждый экземпляр типа также требовал экземпляра
FromField
Конечная цель - заставить postgresql-simple создать что-то вроде следующего:
[Map SqlColumnName SqlValue]