diff --git a/Language/Haskell/Tools/Rewrite/Create/Binds.hs b/Language/Haskell/Tools/Rewrite/Create/Binds.hs
--- a/Language/Haskell/Tools/Rewrite/Create/Binds.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/Binds.hs
@@ -1,7 +1,8 @@
 -- | Generation of binding-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkMatch@ creates the annotated version of the @UMatch@ constructor.
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Language.Haskell.Tools.Rewrite.Create.Binds where
 
diff --git a/Language/Haskell/Tools/Rewrite/Create/Decls.hs b/Language/Haskell/Tools/Rewrite/Create/Decls.hs
--- a/Language/Haskell/Tools/Rewrite/Create/Decls.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/Decls.hs
@@ -1,7 +1,8 @@
 -- | Generation of declaration-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkTypeSignature@ creates the annotated version of the @UTypeSignature@ AST constructor.
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Language.Haskell.Tools.Rewrite.Create.Decls where
 
diff --git a/Language/Haskell/Tools/Rewrite/Create/Exprs.hs b/Language/Haskell/Tools/Rewrite/Create/Exprs.hs
--- a/Language/Haskell/Tools/Rewrite/Create/Exprs.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/Exprs.hs
@@ -1,7 +1,8 @@
 -- | Generation of expression-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkApp@ creates the annotated version of the @App@ AST constructor.
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Language.Haskell.Tools.Rewrite.Create.Exprs where
 
diff --git a/Language/Haskell/Tools/Rewrite/Create/Kinds.hs b/Language/Haskell/Tools/Rewrite/Create/Kinds.hs
--- a/Language/Haskell/Tools/Rewrite/Create/Kinds.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/Kinds.hs
@@ -1,6 +1,7 @@
 -- | Generation of statement-level AST fragments for refactorings.
 -- The bindings defined here are the AST constructor names with an "mk" prefix.
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Language.Haskell.Tools.Rewrite.Create.Kinds where
 
diff --git a/Language/Haskell/Tools/Rewrite/Create/Literals.hs b/Language/Haskell/Tools/Rewrite/Create/Literals.hs
--- a/Language/Haskell/Tools/Rewrite/Create/Literals.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/Literals.hs
@@ -1,6 +1,6 @@
 -- | Generation of literals for refactorings.
 -- The bindings defined here are the AST constructor names with an "mk" prefix.
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
 
 module Language.Haskell.Tools.Rewrite.Create.Literals where
 
diff --git a/Language/Haskell/Tools/Rewrite/Create/Modules.hs b/Language/Haskell/Tools/Rewrite/Create/Modules.hs
--- a/Language/Haskell/Tools/Rewrite/Create/Modules.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/Modules.hs
@@ -1,7 +1,8 @@
 -- | Generation of UModule-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkModule@ creates the annotated version of the @UModule@ AST constructor.
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Language.Haskell.Tools.Rewrite.Create.Modules where
 
diff --git a/Language/Haskell/Tools/Rewrite/Create/Names.hs b/Language/Haskell/Tools/Rewrite/Create/Names.hs
--- a/Language/Haskell/Tools/Rewrite/Create/Names.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/Names.hs
@@ -1,5 +1,6 @@
 -- | Generation of names for refactorings
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Language.Haskell.Tools.Rewrite.Create.Names where
 
diff --git a/Language/Haskell/Tools/Rewrite/Create/Patterns.hs b/Language/Haskell/Tools/Rewrite/Create/Patterns.hs
--- a/Language/Haskell/Tools/Rewrite/Create/Patterns.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/Patterns.hs
@@ -1,7 +1,8 @@
 -- | Generation of pattern-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkVarPat@ creates the annotated version of the @VarPat@ AST constructor.
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Language.Haskell.Tools.Rewrite.Create.Patterns where
 
diff --git a/Language/Haskell/Tools/Rewrite/Create/Stmts.hs b/Language/Haskell/Tools/Rewrite/Create/Stmts.hs
--- a/Language/Haskell/Tools/Rewrite/Create/Stmts.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/Stmts.hs
@@ -1,6 +1,7 @@
 -- | Generation of statement-level AST fragments for refactorings.
 -- The bindings defined here are the AST constructor names with an "mk" prefix.
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Language.Haskell.Tools.Rewrite.Create.Stmts where
 
diff --git a/Language/Haskell/Tools/Rewrite/Create/TH.hs b/Language/Haskell/Tools/Rewrite/Create/TH.hs
--- a/Language/Haskell/Tools/Rewrite/Create/TH.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/TH.hs
@@ -1,5 +1,6 @@
 -- | Generation of Template Haskell AST fragments for refactorings.
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Language.Haskell.Tools.Rewrite.Create.TH where
 
diff --git a/Language/Haskell/Tools/Rewrite/Create/Types.hs b/Language/Haskell/Tools/Rewrite/Create/Types.hs
--- a/Language/Haskell/Tools/Rewrite/Create/Types.hs
+++ b/Language/Haskell/Tools/Rewrite/Create/Types.hs
@@ -1,7 +1,8 @@
 -- | Generation of type-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkTyForall@ creates the annotated version of the @TyForall@ AST constructor.
-{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+{-# LANGUAGE MonoLocalBinds #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module Language.Haskell.Tools.Rewrite.Create.Types where
 
diff --git a/Language/Haskell/Tools/Rewrite/Match/Types.hs b/Language/Haskell/Tools/Rewrite/Match/Types.hs
--- a/Language/Haskell/Tools/Rewrite/Match/Types.hs
+++ b/Language/Haskell/Tools/Rewrite/Match/Types.hs
@@ -112,6 +112,10 @@
 pattern PromotedUnitType :: Type
 pattern PromotedUnitType <- Ann _ (UTyPromoted (Ann _ UPromotedUnit))
 
+-- | An unboxed sum type.
+pattern UnboxedSumType :: TypeList -> Type
+pattern UnboxedSumType tys <- Ann _ (UUnbSumType tys)
+
 -- * Type variable
 
 -- | Type variable declaration
diff --git a/haskell-tools-rewrite.cabal b/haskell-tools-rewrite.cabal
--- a/haskell-tools-rewrite.cabal
+++ b/haskell-tools-rewrite.cabal
@@ -1,5 +1,5 @@
 name:                haskell-tools-rewrite
-version:             1.0.1.1
+version:             1.1.0.0
 synopsis:            Facilities for generating new parts of the Haskell-Tools AST
 description:         Contains utility functions to generate parts of the Haskell-Tools AST. Generates these elements to be compatible with the source annotations that are already present on the AST. The package is divided into modules based on which language elements can the given module generate. This packages should be used during the transformations to generate parts of the new AST.
 homepage:            https://github.com/haskell-tools/haskell-tools
@@ -39,13 +39,13 @@
                      , Language.Haskell.Tools.Rewrite.Match.Names
                      , Language.Haskell.Tools.Rewrite.Match.TH
   other-modules:       Language.Haskell.Tools.Rewrite.Create.Utils
-  build-depends:       base                      >= 4.10  && < 4.11
+  build-depends:       base                      >= 4.11  && < 4.12
                      , mtl                       >= 2.2  && < 2.3
                      , containers                >= 0.5  && < 0.6
                      , references                >= 0.3  && < 0.4
-                     , ghc                       >= 8.2  && < 8.3
-                     , haskell-tools-ast         >= 1.0  && < 1.1
-                     , haskell-tools-prettyprint >= 1.0  && < 1.1
+                     , ghc                       >= 8.4  && < 8.5
+                     , haskell-tools-ast         >= 1.1  && < 1.2
+                     , haskell-tools-prettyprint >= 1.1  && < 1.2
   default-language:    Haskell2010
 
 test-suite haskell-tools-rewrite-tests
@@ -53,12 +53,12 @@
   ghc-options:         -with-rtsopts=-M2g
   hs-source-dirs:      test
   main-is:             Main.hs
-  build-depends:       base                      >= 4.10 && < 4.11
+  build-depends:       base                      >= 4.11 && < 4.12
                      , tasty                     >= 0.11 && < 1.1
                      , tasty-hunit               >= 0.9 && < 0.11
                      , directory                 >= 1.2 && < 1.4
                      , filepath                  >= 1.4 && < 2.0
-                     , haskell-tools-ast         >= 1.0 && < 1.1
-                     , haskell-tools-prettyprint >= 1.0 && < 1.1
+                     , haskell-tools-ast         >= 1.1 && < 1.2
+                     , haskell-tools-prettyprint >= 1.1 && < 1.2
                      , haskell-tools-rewrite
   default-language:    Haskell2010
