beam-large-records-0.1.1: src/Data/Record/Beam/Interpretation.hs
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE TypeFamilies #-}
module Data.Record.Beam.Interpretation (
BeamInterpretation
) where
import Data.Kind
import Data.Record.Generic.Transform
import Database.Beam.Schema.Tables
-- | Interpretation domain
--
-- This is (mostly) for internal use; client code will probably not have to
-- interact with this directly.
--
-- See "Data.Record.Generic.Transform" for details on interpretation domains.
data BeamInterpretation (f :: Type -> Type)
type instance Interpreted (BeamInterpretation f) (Uninterpreted x) = Columnar f x
type instance Interpreted (BeamInterpretation f) (table Uninterpreted) = table f
type instance Interpreted (BeamInterpretation f) (table (Nullable Uninterpreted)) = table (Nullable f)