{-# LANGUAGE FlexibleContexts #-}
module Opaleye.ToFields (C.toFields, toFieldsI, C.ToFields, module Opaleye.ToFields) where
import qualified Opaleye.Constant as C
import Opaleye.Internal.Inferrable (Inferrable, runInferrable)
import qualified Data.Profunctor.Product.Default as D
toFieldsExplicit :: C.ToFields haskells fields -> haskells -> fields
toFieldsExplicit = C.constantExplicit
toToFields :: (haskells -> fields) -> C.ToFields haskells fields
toToFields = C.Constant
toFieldsI :: (D.Default (Inferrable C.ToFields) haskells fields)
=> haskells
-> fields
toFieldsI = toFieldsExplicit (runInferrable D.def)