{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Database.Relational.Projectable.Instances () where
import Data.Functor.ProductIsomorphic
(ProductIsoFunctor, (|$|), ProductIsoApplicative, pureP, (|*|),
ProductIsoEmpty, pureE, peRight, peLeft, )
import Database.Relational.Internal.ContextType
(Flat, Aggregated, OverWindow)
import qualified Database.Relational.Record as Record
import Database.Relational.Projectable.Unsafe
(SqlContext (..), OperatorContext, AggregatedContext, PlaceHolders (..))
instance SqlContext Flat where
unsafeProjectSqlTerms = Record.unsafeFromSqlTerms
instance SqlContext Aggregated where
unsafeProjectSqlTerms = Record.unsafeFromSqlTerms
instance SqlContext OverWindow where
unsafeProjectSqlTerms = Record.unsafeFromSqlTerms
instance OperatorContext Flat
instance OperatorContext Aggregated
instance AggregatedContext Aggregated
instance AggregatedContext OverWindow
instance ProductIsoEmpty PlaceHolders () where
pureE = PlaceHolders
peRight _ = PlaceHolders
peLeft _ = PlaceHolders
instance ProductIsoFunctor PlaceHolders where
_ |$| PlaceHolders = PlaceHolders
instance ProductIsoApplicative PlaceHolders where
pureP _ = PlaceHolders
_pf |*| _pa = PlaceHolders