diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,16 @@
 `hslua-module-doclayout` uses [PVP Versioning][1].
 The changelog is available [on GitHub][2].
 
+## 1.1.1
+
+Released 2024-01-23.
+
+-   Relaxed upper bound for text, allowing text-2.1.
+
+-   Improved doc strings.
+
+-   Test with latest GHC versions.
+
 ## 1.1.0
 
 Release pending.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 MIT License
 
-Copyright (c) 2020-2022 Albert Krewinkel
+Copyright (c) 2020-2024 Albert Krewinkel
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/hslua-module-doclayout.cabal b/hslua-module-doclayout.cabal
--- a/hslua-module-doclayout.cabal
+++ b/hslua-module-doclayout.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                hslua-module-doclayout
-version:             1.1.0
+version:             1.1.1
 synopsis:            Lua module wrapping Text.DocLayout.
 description:         Lua module wrapping @Text.DocLayout@.
 homepage:            https://github.com/hslua/hslua-module-doclayout
@@ -9,7 +9,7 @@
 license-file:        LICENSE
 author:              Albert Krewinkel
 maintainer:          Albert Krewinkel <albert@zeitkraut.de>
-copyright:           © 2020-2022 Albert Krewinkel
+copyright:           © 2020-2024 Albert Krewinkel
 category:            Foreign
 build-type:          Simple
 extra-doc-files:     README.md
@@ -21,7 +21,9 @@
                    , GHC == 8.10.7
                    , GHC == 9.0.2
                    , GHC == 9.2.6
-                   , GHC == 9.4.4
+                   , GHC == 9.4.8
+                   , GHC == 9.6
+                   , GHC == 9.8
 
 source-repository head
   type:                git
@@ -31,7 +33,7 @@
   build-depends:       base              >= 4.11   && < 5
                      , doclayout         >= 0.2    && < 0.5
                      , hslua             >= 2.3    && < 2.4
-                     , text              >= 1.2    && < 2.1
+                     , text              >= 1.2    && < 2.2
 
   default-language:    Haskell2010
   other-extensions:    OverloadedStrings
diff --git a/src/HsLua/Module/DocLayout.hs b/src/HsLua/Module/DocLayout.hs
--- a/src/HsLua/Module/DocLayout.hs
+++ b/src/HsLua/Module/DocLayout.hs
@@ -6,7 +6,7 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-|
 Module      : HsLua.Module.DocLayout
-Copyright   : © 2020-2022 Albert Krewinkel
+Copyright   : © 2020-2024 Albert Krewinkel
 License     : MIT
 Maintainer  : Albert Krewinkel <albert+hslua@zeitkraut.de>
 
@@ -247,9 +247,11 @@
   <#> docParam "doc"
   <#> opt (integralParam "colwidth" "planned maximum line length")
   =#> functionResult pushText "Doc" "rendered doc"
-  #? ("Render a @'Doc'@. The text is reflowed on breakable spaces" <>
-      "to match the given line length. Text is not reflowed if the" <>
-      "line length parameter is omitted or nil.")
+  #? T.unlines
+     [ "Render a [[Doc]]. The text is reflowed on breakable spaces to"
+     , "match the given line length. Text is not reflowed if the line"
+     , "line length parameter is omitted or nil."
+     ]
 
 --
 -- Querying
@@ -269,7 +271,7 @@
   ### liftPure Doc.offset
   <#> docParam "doc"
   =#> integralResult "doc width"
-  #? "Returns the width of a `Doc` as number of characters."
+  #? "Returns the width of a [[Doc]] as number of characters."
 
 -- | Returns the minimal width of a @'Doc'@ when reflowed at
 -- breakable spaces.
@@ -278,7 +280,7 @@
   ### liftPure Doc.minOffset
   <#> docParam "doc"
   =#> integralResult "minimal possible width"
-  #? ("Returns the minimal width of a `Doc` when reflowed at " <>
+  #? ("Returns the minimal width of a [[Doc]] when reflowed at " <>
       "breakable spaces.")
 
 -- | Returns the column that would be occupied by the last laid
@@ -324,7 +326,7 @@
   ### liftPure Doc.afterBreak
   <#> textParam "text" "content to include when placed after a break"
   =#> docResult "new doc"
-  #? ("Creates a `Doc` which is conditionally included only if it " <>
+  #? ("Creates a [[Doc]] which is conditionally included only if it " <>
       "comes at the beginning of a line.\n\n" <>
       "An example where this is useful is for escaping line-initial " <>
       "`.` in roff man.")
@@ -427,7 +429,7 @@
   <#> docParam "start"
   <#> docParam "end"
   =#> docResult "enclosed contents"
-  #? "Encloses a `Doc` inside a start and end `Doc`."
+  #? "Encloses a [[Doc]] inside a start and end [[Doc]]."
 
 -- | Creates a block with the given width and content, aligned to
 -- the left.
diff --git a/test/test-hslua-module-doclayout.hs b/test/test-hslua-module-doclayout.hs
--- a/test/test-hslua-module-doclayout.hs
+++ b/test/test-hslua-module-doclayout.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE TypeApplications  #-}
 {-|
 Module      : Main
-Copyright   : © 2020-2022 Albert Krewinkel
+Copyright   : © 2020-2024 Albert Krewinkel
 License     : MIT
 Maintainer  : Albert Krewinkel <albert+hslua@zeitkraut.de>
 
