diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 ## Changelog
 
+#### 0.11.0.1
+
+- Update to work with newer base
+
 #### 0.11.0
 
 - Migrates custom lexer logic to `alex-tools` package
diff --git a/language-lua.cabal b/language-lua.cabal
--- a/language-lua.cabal
+++ b/language-lua.cabal
@@ -3,7 +3,7 @@
 Description:
     Lua 5.3 lexer, parser and pretty-printer.
 
-Version:             0.11.0
+Version:             0.11.0.1
 Synopsis:            Lua parser and pretty-printer
 Homepage:            http://github.com/glguy/language-lua
 Bug-reports:         http://github.com/glguy/language-lua/issues
@@ -48,7 +48,7 @@
                      Language.Lua.LexerUtils,
                      Language.Lua.Utils
 
-  Build-depends:     base >= 4.5 && < 4.12,
+  Build-depends:     base >= 4.5 && < 4.14,
                      deepseq,
                      array >= 0.4 && < 0.6,
                      bytestring >= 0.10 && < 0.11,
@@ -64,7 +64,7 @@
   Default-language:  Haskell2010
   Hs-source-dirs:    tests
   Main-is:           Main.hs
-  Build-depends:     base >= 4.5 && < 4.12,
+  Build-depends:     base >= 4.5 && < 4.14,
                      deepseq,
                      directory,
                      filepath,
diff --git a/src/Language/Lua/LexerUtils.hs b/src/Language/Lua/LexerUtils.hs
--- a/src/Language/Lua/LexerUtils.hs
+++ b/src/Language/Lua/LexerUtils.hs
@@ -41,7 +41,7 @@
 -- the closing character for a string.
 unterminatedString :: Action Mode [Lexeme Token]
 unterminatedString =
-  do StringMode _strTy _errs inp0 <- getLexerState
+  do ~(StringMode _strTy _errs inp0) <- getLexerState
      setLexerState NormalMode
      longToken inp0 TokUntermString
 
@@ -57,7 +57,7 @@
 invalidEsc =
   do inp1 <- startInput
      inp2 <- endInput
-     StringMode m errs inp0 <- getLexerState
+     ~(StringMode m errs inp0) <- getLexerState
      let err = SourceRange
                  { sourceFrom = inputPos inp1
                  , sourceTo   = inputPrev inp2
