diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,13 @@
 <!-- -*- Markdown -*- -->
 
+## 0.6.0.5
+
+- apply compat interface packages of TH.
+
+## 0.6.0.4
+
+- update documentation.
+
 ## 0.6.0.3
 
 - fix example of NameConfig customization.
diff --git a/persistable-record.cabal b/persistable-record.cabal
--- a/persistable-record.cabal
+++ b/persistable-record.cabal
@@ -1,5 +1,5 @@
 name:                persistable-record
-version:             0.6.0.4
+version:             0.6.0.5
 synopsis:            Binding between SQL database values and haskell records.
 description:         This package contiains types to represent table constraints and
                      interfaces to bind between SQL database values and Haskell records.
@@ -8,11 +8,13 @@
 license-file:        LICENSE
 author:              Kei Hibino
 maintainer:          ex8k.hibino@gmail.com
-copyright:           Copyright (c) 2013-2017 Kei Hibino
+copyright:           Copyright (c) 2013-2020 Kei Hibino
 category:            Database
 build-type:          Simple
 cabal-version:       >=1.10
-tested-with:           GHC == 8.4.1, GHC == 8.4.2, GHC == 8.4.3
+tested-with:           GHC == 8.8.1, GHC == 8.8.2
+                     , GHC == 8.6.1, GHC == 8.6.2, GHC == 8.6.3, GHC == 8.6.4, GHC == 8.6.5
+                     , GHC == 8.4.1, GHC == 8.4.2, GHC == 8.4.3, GHC == 8.4.4
                      , GHC == 8.2.1, GHC == 8.2.2
                      , GHC == 8.0.1, GHC == 8.0.2
                      , GHC == 7.10.1, GHC == 7.10.2, GHC == 7.10.3
@@ -23,47 +25,57 @@
 
 library
   exposed-modules:
-                        Database.Record.FromSql
-                        Database.Record.ToSql
-                        Database.Record.Persistable
-                        Database.Record.TupleInstances
-                        Database.Record.Instances
-                        Database.Record.KeyConstraint
-                        Database.Record
-                        Database.Record.TH
+                       Database.Record.FromSql
+                       Database.Record.ToSql
+                       Database.Record.Persistable
+                       Database.Record.TupleInstances
+                       Database.Record.Instances
+                       Database.Record.KeyConstraint
+                       Database.Record
+                       Database.Record.TH
 
   other-modules:
-                        Database.Record.InternalTH
+                       Database.Record.InternalTH
 
-  build-depends:          base <5
-                        , template-haskell
-                        , th-data-compat
-                        , product-isomorphic >= 0.0.3
-                        , array
-                        , containers
-                        , transformers
-                        , dlist
-                        , names-th
+  build-depends:         base <5
+                       , template-haskell
+                       , th-data-compat
+                       , th-constraint-compat
+                       , th-bang-compat
+                       , product-isomorphic >= 0.0.3
+                       , array
+                       , containers
+                       , transformers
+                       , dlist
+                       , names-th
   if impl(ghc == 7.4.*)
-    build-depends:        ghc-prim == 0.2.*
+    build-depends:       ghc-prim == 0.2.*
 
-  hs-source-dirs:       src
-  ghc-options:          -Wall
-  default-language:     Haskell2010
+  hs-source-dirs:      src
+  ghc-options:         -Wall
+  if impl(ghc >= 8)
+    ghc-options:         -Wcompat
+  if impl(ghc >= 8) && impl(ghc < 8.8)
+    ghc-options:         -Wnoncanonical-monadfail-instances
 
+  default-language:    Haskell2010
+
 test-suite nested
-  build-depends:          base <5
-                        , quickcheck-simple
-                        , persistable-record
+  build-depends:         base <5
+                       , quickcheck-simple
+                       , persistable-record
   if impl(ghc == 7.4.*)
-    build-depends:        ghc-prim == 0.2.*
+    build-depends:       ghc-prim == 0.2.*
 
-  type:                 exitcode-stdio-1.0
-  main-is:              nestedEq.hs
-  other-modules:        Model
-  hs-source-dirs:       test
-  ghc-options:          -Wall
-  default-language:     Haskell2010
+  type:                exitcode-stdio-1.0
+  main-is:             nestedEq.hs
+  other-modules:       Model
+  hs-source-dirs:      test
+  ghc-options:         -Wall
+  if impl(ghc >= 8)
+    ghc-options:         -Wcompat
+
+  default-language:    Haskell2010
 
 source-repository head
   type:       git
diff --git a/src/Database/Record/InternalTH.hs b/src/Database/Record/InternalTH.hs
--- a/src/Database/Record/InternalTH.hs
+++ b/src/Database/Record/InternalTH.hs
@@ -12,7 +12,8 @@
 import Data.Int (Int32, Int64)
 import Language.Haskell.TH
   (Q, mkName, Name, tupleTypeName,
-   TypeQ, varT, classP, Dec, instanceD, )
+   TypeQ, varT, Dec, instanceD, )
+import Language.Haskell.TH.Compat.Constraint (classP)
 import Data.Functor.ProductIsomorphic.TH (reifyRecordType)
 
 import Database.Record.Persistable (PersistableWidth)
diff --git a/src/Database/Record/TH.hs b/src/Database/Record/TH.hs
--- a/src/Database/Record/TH.hs
+++ b/src/Database/Record/TH.hs
@@ -55,9 +55,11 @@
    toTypeCon, toDataCon, )
 import Language.Haskell.TH.Lib.Extra (integralE, simpleValD, reportWarning)
 import Language.Haskell.TH.Compat.Data (dataD')
+import Language.Haskell.TH.Compat.Bang
+  (varBangType, bangType, bang,
+   noSourceUnpackedness, sourceStrict)
 import Language.Haskell.TH
-  (Q, nameBase, Name, Dec, TypeQ, conT, ExpQ, listE, sigE,
-   recC, cxt, varStrictType, strictType, isStrict)
+  (Q, nameBase, Name, Dec, TypeQ, conT, ExpQ, listE, sigE, recC, cxt)
 
 import Control.Arrow ((&&&))
 
@@ -184,7 +186,7 @@
                  -> Q [Dec]            -- ^ The data type record definition
 defineRecordType typeName' columns derives = do
   let typeName = conName typeName'
-      fld (n, tq) = varStrictType (varName n) (strictType isStrict tq)
+      fld (n, tq) = varBangType (varName n) (bangType (bang noSourceUnpackedness sourceStrict) tq)
   derives1 <- if (''Generic `notElem` derives)
               then do reportWarning "HRR needs Generic instance, please add ''Generic manually."
                       return $ ''Generic : derives
