diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,11 @@
+# 1.2.2.0 (2021-11-21)
+
+## Other
+
+* Support GHC 9.2 ([#145](https://github.com/circuithub/rel8/pull/145))
+* Correct the documentation for `except` ([#147](https://github.com/circuithub/rel8/pull/147))
+* Support `hasql` 1.5 ([#149](https://github.com/circuithub/rel8/pull/149))
+
 # 1.2.1.0 (2021-11-21)
 
 ## New features
diff --git a/rel8.cabal b/rel8.cabal
--- a/rel8.cabal
+++ b/rel8.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.0
 name:                rel8
-version:             1.2.1.0
+version:             1.2.2.0
 synopsis:            Hey! Hey! Can u rel8?
 license:             BSD3
 license-file:        LICENSE
@@ -20,13 +20,13 @@
 library
   build-depends:
       aeson
-    , base ^>= 4.14 || ^>=4.15
+    , base ^>= 4.14 || ^>=4.15 || ^>=4.16
     , bifunctors
     , bytestring
     , case-insensitive
     , comonad
     , contravariant
-    , hasql ^>= 1.4.5.1
+    , hasql ^>= 1.4.5.1 || ^>= 1.5.0.0
     , opaleye ^>= 0.8.0.0
     , pretty
     , profunctors
diff --git a/src/Rel8/Aggregate.hs-boot b/src/Rel8/Aggregate.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Rel8/Aggregate.hs-boot
@@ -0,0 +1,11 @@
+{-# language PolyKinds #-}
+{-# language RoleAnnotations #-}
+{-# language StandaloneKindSignatures #-}
+
+module Rel8.Aggregate where
+
+import Data.Kind
+
+type Aggregate :: k -> Type
+type role Aggregate nominal
+data Aggregate a
diff --git a/src/Rel8/Expr.hs b/src/Rel8/Expr.hs
--- a/src/Rel8/Expr.hs
+++ b/src/Rel8/Expr.hs
@@ -1,5 +1,6 @@
 {-# language DataKinds #-}
 {-# language DerivingStrategies #-}
+{-# language FlexibleContexts #-}
 {-# language FlexibleInstances #-}
 {-# language MultiParamTypeClasses #-}
 {-# language ScopedTypeVariables #-}
diff --git a/src/Rel8/Generic/Construction/ADT.hs b/src/Rel8/Generic/Construction/ADT.hs
--- a/src/Rel8/Generic/Construction/ADT.hs
+++ b/src/Rel8/Generic/Construction/ADT.hs
@@ -1,6 +1,7 @@
 {-# language AllowAmbiguousTypes #-}
 {-# language BlockArguments #-}
 {-# language DataKinds #-}
+{-# language FlexibleContexts #-}
 {-# language FlexibleInstances #-}
 {-# language MultiParamTypeClasses #-}
 {-# language RankNTypes #-}
diff --git a/src/Rel8/Generic/Record.hs b/src/Rel8/Generic/Record.hs
--- a/src/Rel8/Generic/Record.hs
+++ b/src/Rel8/Generic/Record.hs
@@ -1,5 +1,6 @@
 {-# language AllowAmbiguousTypes #-}
 {-# language DataKinds #-}
+{-# language FlexibleContexts #-}
 {-# language FlexibleInstances #-}
 {-# language MultiParamTypeClasses #-}
 {-# language PolyKinds #-}
diff --git a/src/Rel8/Generic/Table/ADT.hs b/src/Rel8/Generic/Table/ADT.hs
--- a/src/Rel8/Generic/Table/ADT.hs
+++ b/src/Rel8/Generic/Table/ADT.hs
@@ -1,5 +1,6 @@
 {-# language AllowAmbiguousTypes #-}
 {-# language DataKinds #-}
+{-# language FlexibleContexts #-}
 {-# language FlexibleInstances #-}
 {-# language LambdaCase #-}
 {-# language MultiParamTypeClasses #-}
diff --git a/src/Rel8/Query/Set.hs b/src/Rel8/Query/Set.hs
--- a/src/Rel8/Query/Set.hs
+++ b/src/Rel8/Query/Set.hs
@@ -47,7 +47,7 @@
 
 
 -- | Find the difference of two queries, collapsing duplicates @except a b@ is
--- the same as the SQL statement @x INTERSECT b@.
+-- the same as the SQL statement @x EXCEPT b@.
 except :: EqTable a => Query a -> Query a -> Query a
 except = zipOpaleyeWith (Opaleye.exceptExplicit binaryspec)
 
diff --git a/src/Rel8/Schema/Name.hs-boot b/src/Rel8/Schema/Name.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Rel8/Schema/Name.hs-boot
@@ -0,0 +1,11 @@
+{-# language PolyKinds #-}
+{-# language RoleAnnotations #-}
+{-# language StandaloneKindSignatures #-}
+
+module Rel8.Schema.Name where
+
+import Data.Kind ( Type )
+
+type Name :: k -> Type
+type role Name nominal
+data Name a
diff --git a/src/Rel8/Type.hs b/src/Rel8/Type.hs
--- a/src/Rel8/Type.hs
+++ b/src/Rel8/Type.hs
@@ -1,3 +1,4 @@
+{-# language FlexibleContexts #-}
 {-# language FlexibleInstances #-}
 {-# language MonoLocalBinds #-}
 {-# language MultiWayIf #-}
