diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,8 @@
 CHANGELOG
 
+2.0.5
+  - Support for GHC 8.10. Thanks to Potato Hatsue.
+
 2.0.4
   - Import Functor, Applicative, and Monad instances for Kleisli from the
     base-orphans package for future GHC 8.10 support.
diff --git a/fclabels.cabal b/fclabels.cabal
--- a/fclabels.cabal
+++ b/fclabels.cabal
@@ -1,5 +1,5 @@
 Name:          fclabels
-Version:       2.0.4
+Version:       2.0.5
 Author:        Sebastiaan Visser, Erik Hesselink, Chris Eidhof, Sjoerd Visscher
                with lots of help and feedback from others.
 Synopsis:      First class accessor labels implemented as lenses.
@@ -47,11 +47,9 @@
                See "Data.Label.Base" and "Data.Label.Monadic" for more
                information.
                .
-               * /Changelog from 2.0.3.2 to 2.0.4/
+               * /Changelog from 2.0.4 to 2.0.5/
                .
-               >   - Import Functor, Applicative, and Monad instances for
-               >     Kleisli from the base-orphans package for future GHC 8.10
-               >     support.
+               >   - Support for GHC 8.10. Thanks to Potato Hatsue.
 
 Maintainer:         Sebastiaan Visser <code@fvisser.nl>
 Homepage:           https://github.com/sebastiaanvisser/fclabels
@@ -59,7 +57,7 @@
 License:            BSD3
 License-File:       LICENSE
 Category:           Data, Lenses
-Cabal-Version:      >= 1.8
+Cabal-Version:      >= 1.10
 Build-Type:         Simple
 Tested-With:
   GHC==7.4.2,
@@ -88,12 +86,14 @@
 
   GHC-Options: -Wall
   Build-Depends:
-      base             >= 4.5   && < 4.14
+      base             >= 4.5   && < 4.15
     , base-orphans     >= 0.8.2 && < 0.9
-    , template-haskell >= 2.2   && < 2.16
+    , template-haskell >= 2.2   && < 2.17
     , mtl              >= 1.0   && < 2.3
     , transformers     >= 0.2   && < 0.6
 
+  Default-Language: Haskell2010
+
 Source-Repository head
   Type:     git
   Location: git://github.com/sebastiaanvisser/fclabels.git
@@ -110,6 +110,7 @@
     , mtl
     , transformers
     , HUnit            >= 1.2 && < 1.7
+  Default-Language: Haskell2010
 
 Benchmark benchmark
   Type:            exitcode-stdio-1.0
@@ -120,3 +121,4 @@
       base      < 5
     , fclabels
     , criterion < 1.6
+  Default-Language: Haskell2010
diff --git a/src/Data/Label/Derive.hs b/src/Data/Label/Derive.hs
--- a/src/Data/Label/Derive.hs
+++ b/src/Data/Label/Derive.hs
@@ -128,10 +128,12 @@
          types   =        map (\(LabelExpr _ _ t _) -> t) labels
          context = head $ map (\(LabelExpr _ c _ _) -> c) labels
          vars    = head $ map (\(LabelExpr v _ _ _) -> v) labels
-     if sigs
-       then tupE bodies `sigE`
-              forallT vars context (foldl appT (tupleT (length bodies)) types)
-       else tupE bodies
+     case bodies of
+       [b] -> if sigs then b `sigE` forallT vars context (head types) else b
+       _   -> if sigs
+          then tupE bodies `sigE`
+               forallT vars context (foldl appT (tupleT (length bodies)) types)
+          else tupE bodies
 
 -- | Low level standalone label derivation function.
 
