diff --git a/HFlags.hs b/HFlags.hs
--- a/HFlags.hs
+++ b/HFlags.hs
@@ -15,6 +15,7 @@
 --
 -- Authors: Mihaly Barasz <klao@google.com>, Gergely Risko <gergely@risko.hu>
 
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE TypeSynonymInstances #-}
 {-# LANGUAGE FlexibleInstances #-}
@@ -185,7 +186,11 @@
      let dataName = mkName $ "HFlag_" ++ name
      let dataConstrName = mkName $ "HFlagC_" ++ name
      -- Note: support for splicing inside [d| |] would make all this a lot nicer
-     dataDec <- dataD (cxt []) dataName [] [normalC dataConstrName []] []
+#if MIN_VERSION_template_haskell(2,11,0)
+     dataDec <- dataD (cxt []) dataName [] Nothing [normalC dataConstrName []] (cxt [])
+#else
+     dataDec <- dataD (cxt []) dataName []         [normalC dataConstrName []]      []
+#endif
      instanceDec <- instanceD
                     (cxt [])
                     (appT (conT ''Flag) (conT dataName))
diff --git a/hflags.cabal b/hflags.cabal
--- a/hflags.cabal
+++ b/hflags.cabal
@@ -1,11 +1,11 @@
 name: hflags
-version: 0.4
-license: OtherLicense
+version: 0.4.1
+license: Apache-2.0
 license-file: COPYING
 author: Mihaly Barasz <klao@google.com>, Gergely Risko <gergely@risko.hu>
 maintainer: Gergely Risko <gergely@risko.hu>
 build-type: Simple
-cabal-version: >= 1.6
+cabal-version: >= 1.18
 category: Console
 stability: provisional
 homepage: http://github.com/errge/hflags
@@ -78,6 +78,7 @@
   location: http://github.com/errge/hflags
 
 library
+  default-language: Haskell2010
   ghc-options: -Wall
 
   build-depends:
