Как создать гетерогенную карту 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]

0 ответов

Другие вопросы по тегам