diff --git a/composite-opaleye.cabal b/composite-opaleye.cabal
--- a/composite-opaleye.cabal
+++ b/composite-opaleye.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.3.
+-- This file has been generated from package.yaml by hpack version 0.34.5.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: f36b567442bdd52febf8ef607bf0a41795c161ef0d2ac08d9d9f10eeee4dc39e
+-- hash: 03ab7de21f52bc22bd073870d37886f0591c8fa2ee7a704f32d4e385ecbcc622
 
 name:           composite-opaleye
-version:        0.7.5.0
+version:        0.8.0.0
 synopsis:       Opaleye SQL for Vinyl records
 description:    Integration between Vinyl records and Opaleye SQL, allowing records to be stored, retrieved, and queried from PostgreSQL.
 category:       Records
@@ -30,20 +30,34 @@
       Paths_composite_opaleye
   hs-source-dirs:
       src
-  default-extensions: DataKinds FlexibleContexts FlexibleInstances LambdaCase MultiParamTypeClasses OverloadedStrings PatternSynonyms PolyKinds ScopedTypeVariables StrictData TemplateHaskell TypeFamilies TypeOperators ViewPatterns
+  default-extensions:
+      DataKinds
+      FlexibleContexts
+      FlexibleInstances
+      LambdaCase
+      MultiParamTypeClasses
+      OverloadedStrings
+      PatternSynonyms
+      PolyKinds
+      ScopedTypeVariables
+      StrictData
+      TemplateHaskell
+      TypeFamilies
+      TypeOperators
+      ViewPatterns
   ghc-options: -Wall -O2
   build-depends:
-      base >=4.7 && <5
-    , bytestring >=0.10.8.1 && <0.11
-    , composite-base >=0.7 && <0.8
-    , lens >=4.15.4 && <5.1
-    , opaleye >=0.5.4.0 && <0.8
+      base >=4.12 && <5
+    , bytestring >=0.10.8.1 && <0.12
+    , composite-base ==0.8.*
+    , lens >=4.15.4 && <5.2
+    , opaleye >=0.5.4.0 && <0.10
     , postgresql-simple >=0.5.3.0 && <0.7
     , product-profunctors >=0.8.0.3 && <0.12
-    , profunctors >=5.2.1 && <5.6
-    , template-haskell >=2.11.1.0 && <2.17
+    , profunctors >=5.2.1 && <5.7
+    , template-haskell >=2.11.1.0 && <2.19
     , text >=1.2.2.2 && <1.3
-    , vinyl >=0.5.3 && <0.14
+    , vinyl >=0.5.3 && <0.15
   default-language: Haskell2010
 
 test-suite composite-opaleye-test
@@ -54,21 +68,35 @@
       Paths_composite_opaleye
   hs-source-dirs:
       test
-  default-extensions: DataKinds FlexibleContexts FlexibleInstances LambdaCase MultiParamTypeClasses OverloadedStrings PatternSynonyms PolyKinds ScopedTypeVariables StrictData TemplateHaskell TypeFamilies TypeOperators ViewPatterns
+  default-extensions:
+      DataKinds
+      FlexibleContexts
+      FlexibleInstances
+      LambdaCase
+      MultiParamTypeClasses
+      OverloadedStrings
+      PatternSynonyms
+      PolyKinds
+      ScopedTypeVariables
+      StrictData
+      TemplateHaskell
+      TypeFamilies
+      TypeOperators
+      ViewPatterns
   ghc-options: -Wall -O2 -threaded -rtsopts -with-rtsopts=-N -fno-warn-orphans
   build-depends:
       QuickCheck
-    , base >=4.7 && <5
-    , bytestring >=0.10.8.1 && <0.11
-    , composite-base >=0.7 && <0.8
+    , base >=4.12 && <5
+    , bytestring >=0.10.8.1 && <0.12
+    , composite-base ==0.8.*
     , composite-opaleye
     , hspec
-    , lens >=4.15.4 && <5.1
-    , opaleye >=0.5.4.0 && <0.8
+    , lens >=4.15.4 && <5.2
+    , opaleye >=0.5.4.0 && <0.10
     , postgresql-simple >=0.5.3.0 && <0.7
     , product-profunctors >=0.8.0.3 && <0.12
-    , profunctors >=5.2.1 && <5.6
-    , template-haskell >=2.11.1.0 && <2.17
+    , profunctors >=5.2.1 && <5.7
+    , template-haskell >=2.11.1.0 && <2.19
     , text >=1.2.2.2 && <1.3
-    , vinyl >=0.5.3 && <0.14
+    , vinyl >=0.5.3 && <0.15
   default-language: Haskell2010
diff --git a/src/Composite/Opaleye/RecordTable.hs b/src/Composite/Opaleye/RecordTable.hs
--- a/src/Composite/Opaleye/RecordTable.hs
+++ b/src/Composite/Opaleye/RecordTable.hs
@@ -7,42 +7,42 @@
 import qualified Data.Profunctor.Product as PP
 import Data.Proxy (Proxy(Proxy))
 import GHC.TypeLits (KnownSymbol, symbolVal)
-import Opaleye (Column, required, optional)
-import Opaleye.Internal.Table (TableProperties)
+import Opaleye (Field, requiredTableField, optionalTableField)
+import Opaleye.Internal.Table (TableFields)
 
--- |Helper typeclass which picks which of 'required' or 'optional' to use for a pair of write column type and read column type.
+-- |Helper typeclass which picks which of 'requiredTableField' or 'optionalTableField' to use for a pair of write column type and read column type.
 --
--- @DefaultRecTableField (Maybe (Column a)) (Column a)@ uses 'optional'.
--- @DefaultRecTableField        (Column a)  (Column a)@ uses 'required'.
+-- @DefaultRecTableField (Maybe (Field a)) (Field a)@ uses 'optionalTableField'.
+-- @DefaultRecTableField        (Field a)  (Field a)@ uses 'requiredTableField'.
 class DefaultRecTableField write read where
-  defaultRecTableField :: String -> TableProperties write read
+  defaultRecTableField :: String -> TableFields write read
 
-instance DefaultRecTableField (Maybe (Column a)) (Column a) where
-  defaultRecTableField = optional
+instance DefaultRecTableField (Maybe (Field a)) (Field a) where
+  defaultRecTableField = optionalTableField
 
-instance DefaultRecTableField (Column a) (Column a) where
-  defaultRecTableField = required
+instance DefaultRecTableField (Field a) (Field a) where
+  defaultRecTableField = requiredTableField
 
--- |Type class for producing a default 'TableProperties' schema for some expected record types. 'required' and 'optional' are chosen automatically and the
+-- |Type class for producing a default 'TableFields' schema for some expected record types. 'requiredTableField' and 'optionalTableField' are chosen automatically and the
 -- column is named after the record fields, using 'NamedField' to reflect the field names.
 --
 -- For example, given:
 --
--- >  type WriteRec = Record '["id" :-> Maybe (Column PGInt8), "name" :-> Column PGText]
--- >  type ReadRec  = Record '["id" :->        Column PGInt8 , "name" :-> Column PGText]
+-- >  type WriteRec = Record '["id" :-> Maybe (Field PGInt8), "name" :-> Field PGText]
+-- >  type ReadRec  = Record '["id" :->        Field PGInt8 , "name" :-> Field PGText]
 --
 -- This:
 --
--- >  defaultRecTable :: TableProperties WriteRec ReadRec
+-- >  defaultRecTable :: TableFields WriteRec ReadRec
 --
 -- Is equivalent to:
 --
--- > pRec (optional "id" &: required "name" &: Nil)
+-- > pRec (optionalTableField "id" &: requiredTableField "name" &: Nil)
 --
 --
--- Alternately, use 'Composite.Opaleye.ProductProfunctors.pRec' and the usual Opaleye 'required' and 'optional'.
+-- Alternately, use 'Composite.Opaleye.ProductProfunctors.pRec' and the usual Opaleye 'requiredTableField' and 'optionalTableField'.
 class DefaultRecTable write read where
-  defaultRecTable :: TableProperties (Rec Identity write) (Rec Identity read)
+  defaultRecTable :: TableFields (Rec Identity write) (Rec Identity read)
 
 instance DefaultRecTable '[] '[] where
   defaultRecTable = dimap (const ()) (const RNil) PP.empty
@@ -58,8 +58,7 @@
           (\ (r, readRs) -> (Identity (Val r) :& readRs))
           (step  ***! recur)
     where
-      step :: TableProperties w r
+      step :: TableFields w r
       step = defaultRecTableField $ symbolVal (Proxy :: Proxy s)
-      recur :: TableProperties (Rec Identity writes) (Rec Identity reads)
+      recur :: TableFields (Rec Identity writes) (Rec Identity reads)
       recur = defaultRecTable
-
diff --git a/src/Composite/Opaleye/TH.hs b/src/Composite/Opaleye/TH.hs
--- a/src/Composite/Opaleye/TH.hs
+++ b/src/Composite/Opaleye/TH.hs
@@ -22,7 +22,7 @@
   )
 import Language.Haskell.TH.Syntax (lift)
 import Opaleye
-  ( Column, Constant(..), QueryRunnerColumnDefault, ToFields, fieldQueryRunnerColumn, queryRunnerColumnDefault
+  ( Column, DefaultFromField, ToFields, fromPGSFromField, defaultFromField
   )
 import Opaleye.Internal.PGTypes (IsSqlType, showSqlType, literalColumn)
 import Opaleye.Internal.HaskellDB.PrimQuery (Literal(StringLit))
@@ -73,11 +73,11 @@
 --           Just other -> 'returnError' 'ConversionFailed' f ("Unexpected myschema.myenum value: " <> 'BSC8.unpack' other)
 --           Nothing    -> 'returnError' 'UnexpectedNull' f ""
 --
---     instance 'QueryRunnerColumnDefault' PGMyEnum MyEnum where
---       queryRunnerColumnDefault = 'fieldQueryRunnerColumn'
+--     instance 'DefaultFromField' PGMyEnum MyEnum where
+--       defaultFromField = 'fromPGSFromField'
 --
 --     instance 'Default' 'ToFields' MyEnum ('Column' PGMyEnum) where
---       def = 'Constant' $ \ a ->
+--       def = 'ToFields' $ \ a ->
 --         'literalColumn' . 'stringLit' $ case a of
 --           MyFoo -> "foo"
 --           MyBar -> "bar"
@@ -165,11 +165,11 @@
           []
       ]
 
-  queryRunnerColumnDefaultInst <- instanceD (cxt []) [t| QueryRunnerColumnDefault $sqlType $hsType |] . (:[]) $
-    funD 'queryRunnerColumnDefault
+  defaultFromFieldInst <- instanceD (cxt []) [t| DefaultFromField $sqlType $hsType |] . (:[]) $
+    funD 'defaultFromField
       [ clause
           []
-          (normalB [| fieldQueryRunnerColumn |])
+          (normalB [| fromPGSFromField |])
           []
       ]
 
@@ -186,9 +186,8 @@
     funD 'def
       [ clause
           []
-          (normalB [| Constant (literalColumn . StringLit . $body) |])
+          (normalB [| ToFields (literalColumn . StringLit . $body) |])
           []
       ]
 
-  pure [sqlTypeDecl, isSqlTypeInst, fromFieldInst, queryRunnerColumnDefaultInst, defaultInst]
-
+  pure [sqlTypeDecl, isSqlTypeInst, fromFieldInst, defaultFromFieldInst, defaultInst]
diff --git a/src/Composite/Opaleye/Util.hs b/src/Composite/Opaleye/Util.hs
--- a/src/Composite/Opaleye/Util.hs
+++ b/src/Composite/Opaleye/Util.hs
@@ -1,11 +1,11 @@
 module Composite.Opaleye.Util where
 
 import Data.Profunctor (dimap)
-import Opaleye (Column, ToFields, unsafeCoerceColumn)
+import Opaleye (Field, ToFields, unsafeCoerceColumn)
 
 -- |Coerce one type of 'Column' 'ToFields' profunctor to another using by just asserting the changed type on the column side and using the given function
 -- on the Haskell side. Useful when the PG value representation is the same but the Haskell type changes, e.g. for enums.
-constantColumnUsing :: ToFields haskell (Column sqlType)
+constantColumnUsing :: ToFields haskell (Field sqlType)
                     -> (haskell' -> haskell)
-                    -> ToFields haskell' (Column sqlType')
+                    -> ToFields haskell' (Field sqlType')
 constantColumnUsing oldToFields f = dimap f unsafeCoerceColumn oldToFields
