{-# LANGUAGE FlexibleContexts #-}
module Opaleye.MaybeFields (
MaybeFields,
nothingFields,
justFields,
fromMaybeFields,
maybeFields,
maybeFieldsToSelect,
nothingFieldsOfTypeOf,
catMaybeFields,
Opaleye.Join.optional,
Opaleye.MaybeFields.traverseMaybeFields,
Nullspec,
nullspecField,
nullspecMaybeFields,
nullspecList,
nullspecEitherLeft,
nullspecEitherRight,
binaryspecMaybeFields,
distinctspecMaybeFields,
fromFieldsMaybeFields,
toFieldsMaybeFields,
unpackspecMaybeFields,
valuesspecMaybeFields,
nothingFieldsExplicit,
fromMaybeFieldsExplicit,
maybeFieldsExplicit,
Opaleye.Join.optionalExplicit,
traverseMaybeFieldsExplicit,
) where
import Opaleye.Internal.Distinct
import Opaleye.Internal.MaybeFields
import Opaleye.Internal.Values
import Opaleye.Join
import Opaleye.Internal.Unpackspec
import Opaleye.Select
import Data.Profunctor.Product.Default
traverseMaybeFields :: (Default Unpackspec a a, Default Unpackspec b b)
=> SelectArr a b
-> SelectArr (MaybeFields a) (MaybeFields b)
traverseMaybeFields :: SelectArr a b -> SelectArr (MaybeFields a) (MaybeFields b)
traverseMaybeFields = SelectArr a b -> SelectArr (MaybeFields a) (MaybeFields b)
forall a b.
SelectArr a b -> SelectArr (MaybeFields a) (MaybeFields b)
Opaleye.Internal.MaybeFields.traverseMaybeFields
traverseMaybeFieldsExplicit :: Unpackspec a a
-> Unpackspec b b
-> SelectArr a b
-> SelectArr (MaybeFields a) (MaybeFields b)
traverseMaybeFieldsExplicit :: Unpackspec a a
-> Unpackspec b b
-> SelectArr a b
-> SelectArr (MaybeFields a) (MaybeFields b)
traverseMaybeFieldsExplicit Unpackspec a a
_ Unpackspec b b
_ =
SelectArr a b -> SelectArr (MaybeFields a) (MaybeFields b)
forall a b.
SelectArr a b -> SelectArr (MaybeFields a) (MaybeFields b)
Opaleye.Internal.MaybeFields.traverseMaybeFields