{-# 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 :: forall t. [StringSQL] -> Record Flat t
unsafeProjectSqlTerms = forall c t. [StringSQL] -> Record c t
Record.unsafeFromSqlTerms
instance SqlContext Aggregated where
unsafeProjectSqlTerms :: forall t. [StringSQL] -> Record Aggregated t
unsafeProjectSqlTerms = forall c t. [StringSQL] -> Record c t
Record.unsafeFromSqlTerms
instance SqlContext OverWindow where
unsafeProjectSqlTerms :: forall t. [StringSQL] -> Record OverWindow t
unsafeProjectSqlTerms = forall c t. [StringSQL] -> Record c t
Record.unsafeFromSqlTerms
instance OperatorContext Flat
instance OperatorContext Aggregated
instance AggregatedContext Aggregated
instance AggregatedContext OverWindow
instance ProductIsoEmpty PlaceHolders () where
pureE :: PlaceHolders ()
pureE = forall p. PlaceHolders p
PlaceHolders
peRight :: forall a. PlaceHolders (a, ()) -> PlaceHolders a
peRight PlaceHolders (a, ())
_ = forall p. PlaceHolders p
PlaceHolders
peLeft :: forall a. PlaceHolders ((), a) -> PlaceHolders a
peLeft PlaceHolders ((), a)
_ = forall p. PlaceHolders p
PlaceHolders
instance ProductIsoFunctor PlaceHolders where
a -> b
_ |$| :: forall a b.
ProductConstructor (a -> b) =>
(a -> b) -> PlaceHolders a -> PlaceHolders b
|$| PlaceHolders a
PlaceHolders = forall p. PlaceHolders p
PlaceHolders
instance ProductIsoApplicative PlaceHolders where
pureP :: forall a. ProductConstructor a => a -> PlaceHolders a
pureP a
_ = forall p. PlaceHolders p
PlaceHolders
PlaceHolders (a -> b)
_pf |*| :: forall a b.
PlaceHolders (a -> b) -> PlaceHolders a -> PlaceHolders b
|*| PlaceHolders a
_pa = forall p. PlaceHolders p
PlaceHolders