diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2013-2020 Ömer Sinan Ağacan, Siniša Biđin, Rongcui Dong
+Copyright (c) 2013-2021 Ömer Sinan Ağacan, Siniša Biđin, Rongcui Dong
                         and others (see git commits)
 
 This code is licensed under MIT or BSD3 licenses, so that the user
diff --git a/example/Example.hs b/example/Example.hs
--- a/example/Example.hs
+++ b/example/Example.hs
@@ -1,3 +1,8 @@
+-- Note: this code uses the old, inherited from sdl1, surface-based
+-- API for displaying on screen. It can't be used together with the new
+-- renderer API. You should instead copy the surface to a texture ASAP
+-- and then display the texture using the renderer in the usual
+-- sdl2 way.
 {-# LANGUAGE LambdaCase        #-}
 {-# LANGUAGE OverloadedStrings #-}
 
diff --git a/sdl2-ttf.cabal b/sdl2-ttf.cabal
--- a/sdl2-ttf.cabal
+++ b/sdl2-ttf.cabal
@@ -1,5 +1,5 @@
 name:          sdl2-ttf
-version:       2.1.1
+version:       2.1.2
 synopsis:      Bindings to SDL2_ttf.
 description:   Haskell bindings to SDL2_ttf C++ library <http://www.libsdl.org/projects/SDL_ttf/>.
 bug-reports:   https://github.com/haskell-game/sdl2-ttf/issues
@@ -10,11 +10,12 @@
                Siniša Biđin <sinisa@bidin.eu>,
                Ömer Sinan Ağacan (omeragacan@gmail.com),
                Sean Chalmers (sclhiannan@gmail.com)
-copyright:     Copyright © 2013-2017 Ömer Sinan Ağacan, Siniša Biđin, Rongcui Dong
+copyright:     Copyright © 2013-2021 Ömer Sinan Ağacan, Siniša Biđin, Rongcui Dong and others (see git commits)
 category:      Font, Foreign binding, Graphics
 build-type:    Simple
 cabal-version: >=1.10
-tested-with:   GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.2, GHC==8.6.5, GHC==8.8.3
+tested-with:   GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.4,
+               GHC==8.10.4, GHC==9.0.1
 
 source-repository head
   type:     git
@@ -41,11 +42,12 @@
     cbits/helpers.c
 
   build-depends:
-    base             >= 4.8 && < 5,
+    base             >= 4.9 && < 5,
     bytestring       >= 0.10.4.0,
     sdl2             >= 2.2,
     template-haskell,
     text             >= 1.1.0.0,
+    th-abstraction   >= 0.4.0.0,
     transformers     >= 0.4
 
   default-language:
diff --git a/src/SDL/Raw/Helper.hs b/src/SDL/Raw/Helper.hs
--- a/src/SDL/Raw/Helper.hs
+++ b/src/SDL/Raw/Helper.hs
@@ -19,6 +19,7 @@
 import Control.Monad           (replicateM)
 import Control.Monad.IO.Class  (MonadIO, liftIO)
 import Language.Haskell.TH
+import Language.Haskell.TH.Datatype.TyVarBndr (plainTVSpecified)
 
 -- | Given a name @fname@, a name of a C function @cname@ and the desired
 -- Haskell type @ftype@, this function generates:
@@ -80,7 +81,7 @@
     m <- newName "m"
     return $
       ForallT
-        [PlainTV m]
+        [plainTVSpecified m]
         [AppT (ConT ''MonadIO) $ VarT m]
         (AppT (VarT m) t)
   t -> return t
