diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
 # Revision history for influxdb
 
+## v1.7.1.2 - 2020-02-08
+
+* Relax upper version bound for lens
+* Fix documentation bugs
+* Extend doctests
+* Test with GHC 8.8.2
+
 ## v1.7.1.1 - 2019-09-09
 
 * Relax upper version bound for lens
diff --git a/cabal.project b/cabal.project
new file mode 100644
--- /dev/null
+++ b/cabal.project
@@ -0,0 +1,4 @@
+packages: .
+
+package *
+  test-show-details: direct
diff --git a/influxdb.cabal b/influxdb.cabal
--- a/influxdb.cabal
+++ b/influxdb.cabal
@@ -1,5 +1,5 @@
 name: influxdb
-version: 1.7.1.1
+version: 1.7.1.2
 synopsis: Haskell client library for InfluxDB
 description:
   @influxdb@ is a Haskell client library for InfluxDB.
@@ -19,11 +19,12 @@
   GHC == 8.2.2
   GHC == 8.4.4
   GHC == 8.6.5
-  GHC == 8.8.1
+  GHC == 8.8.2
 
 extra-source-files:
   README.md
   CHANGELOG.md
+  cabal.project
 
 flag examples
   description: Build examples
@@ -82,7 +83,7 @@
     , foldl < 1.5
     , http-client >= 0.5 && < 0.7
     , http-types >= 0.8.6 && < 0.13
-    , lens >= 4.9 && < 4.19
+    , lens >= 4.9 && < 4.20
     , network >= 2.6 && < 3.2
     , optional-args >= 1.0 && < 1.1
     , scientific >= 0.3.3 && < 0.4
diff --git a/src/Database/InfluxDB.hs b/src/Database/InfluxDB.hs
--- a/src/Database/InfluxDB.hs
+++ b/src/Database/InfluxDB.hs
@@ -47,7 +47,6 @@
   , authentication
 
   -- ** Parsing results
-  -- $parsing-results
   , QueryResults(..)
   , parseResultsWith
   , parseResultsWithDecoder
@@ -168,8 +167,8 @@
 
 === Using an one-off tuple
 
-If all the field types are an instance of 'FromJSON', we can use a tuple to store
-the results.
+If all the field types are an instance of 'Data.Aeson.FromJSON', we can use a
+tuple to store the results.
 
 >>> :set -XDataKinds -XOverloadedStrings
 >>> type CPUUsage = (Tagged "time" UTCTime, Tagged "idle" Double, Tagged "system" Double, Tagged "user" Double)
diff --git a/src/Database/InfluxDB/Format.hs b/src/Database/InfluxDB/Format.hs
--- a/src/Database/InfluxDB/Format.hs
+++ b/src/Database/InfluxDB/Format.hs
@@ -117,6 +117,8 @@
 --
 -- >>> formatDatabase "test-db"
 -- "test-db"
+-- >>> formatDatabase ("test-db-"%decimal) 0
+-- "test-db-0"
 formatDatabase :: Format Database r -> r
 formatDatabase = runFormatWith Database
 
@@ -124,6 +126,8 @@
 --
 -- >>> formatMeasurement "test-series"
 -- "test-series"
+-- >>> formatMeasurement ("test-series-"%decimal) 0
+-- "test-series-0"
 formatMeasurement :: Format Measurement r -> r
 formatMeasurement = runFormatWith Measurement
 
@@ -131,6 +135,8 @@
 --
 -- >>> formatKey "test-key"
 -- "test-key"
+-- >>> formatKey ("test-key-"%decimal) 0
+-- "test-key-0"
 formatKey :: Format Key r -> r
 formatKey fmt = runFormat fmt (Key . TL.toStrict . TL.toLazyText)
 
@@ -220,7 +226,7 @@
 
 -- | Format a text.
 --
--- Note that this doesn't escape the string. Use 'fieldKey' to format field
+-- Note that this doesn't escape the string. Use 'formatKey' to format field
 -- values in a query.
 --
 -- >>> :t formatKey text
@@ -230,7 +236,7 @@
 
 -- | Format a string.
 --
--- Note that this doesn't escape the string. Use 'fieldKey' to format field
+-- Note that this doesn't escape the string. Use 'formatKey' to format field
 -- values in a query.
 --
 -- >>> :t formatKey string
@@ -240,7 +246,7 @@
 
 -- | Format a UTF-8 encoded byte string.
 --
--- Note that this doesn't escape the string. Use 'fieldKey' to format field
+-- Note that this doesn't escape the string. Use 'formatKey' to format field
 -- values in a query.
 --
 -- >>> :t formatKey byteString8
diff --git a/src/Database/InfluxDB/JSON.hs b/src/Database/InfluxDB/JSON.hs
--- a/src/Database/InfluxDB/JSON.hs
+++ b/src/Database/InfluxDB/JSON.hs
@@ -195,8 +195,8 @@
 
 -- | Parse a RFC3339-formatted timestamp.
 --
--- Note that this parser is slow as it converts a 'T.Text' input to a 'String'
--- before parsing.
+-- Note that this parser is slow as it converts a 'T.Text' input to a
+-- 'Prelude.String' before parsing.
 parseRFC3339 :: ParseTime time => A.Value -> A.Parser time
 parseRFC3339 val = A.withText err
   (maybe (A.typeMismatch err val) (return $!)
diff --git a/src/Database/InfluxDB/Line.hs b/src/Database/InfluxDB/Line.hs
--- a/src/Database/InfluxDB/Line.hs
+++ b/src/Database/InfluxDB/Line.hs
@@ -171,11 +171,11 @@
 measurement :: Lens' (Line time) Measurement
 
 -- | Tag(s) that you want to include with your data point. Tags are optional in
--- the Line Protocol, so you can set it 'empty'.
+-- the Line Protocol, so you can set it 'Control.Applicative.empty'.
 tagSet :: Lens' (Line time) (Map Key Key)
 
 -- | Field(s) for your data point. Every data point requires at least one field
--- in the Line Protocol, so it shouldn't be 'empty'.
+-- in the Line Protocol, so it shouldn't be 'Control.Applicative.empty'.
 fieldSet :: Lens' (Line time) (Map Key LineField)
 
 -- | Timestamp for your data point. You can put whatever type of timestamp that
diff --git a/src/Database/InfluxDB/Types.hs b/src/Database/InfluxDB/Types.hs
--- a/src/Database/InfluxDB/Types.hs
+++ b/src/Database/InfluxDB/Types.hs
@@ -31,6 +31,7 @@
 -- $setup
 -- >>> :set -XOverloadedStrings
 -- >>> import Database.InfluxDB
+-- >>> import qualified Database.InfluxDB.Format as F
 
 -- | An InfluxDB query.
 --
@@ -143,6 +144,13 @@
 --
 -- 'Database.InfluxDB.formatDatabase' can be used to construct a
 -- 'Database'.
+--
+-- >>> "test-db" :: Database
+-- "test-db"
+-- >>> formatDatabase "test-db"
+-- "test-db"
+-- >>> formatDatabase ("test-db-"%F.decimal) 0
+-- "test-db-0"
 newtype Database = Database { databaseName :: Text } deriving (Eq, Ord)
 
 instance IsString Database where
@@ -155,6 +163,13 @@
 --
 -- 'Database.InfluxDB.formatMeasurement' can be used to construct a
 -- 'Measurement'.
+--
+-- >>> "test-series" :: Measurement
+-- "test-series"
+-- >>> formatMeasurement "test-series"
+-- "test-series"
+-- >>> formatMeasurement ("test-series-"%F.decimal) 0
+-- "test-series-0"
 newtype Measurement = Measurement Text deriving (Eq, Ord)
 
 instance IsString Measurement where
@@ -166,6 +181,13 @@
 -- | String type that is used for tag keys/values and field keys.
 --
 -- 'Database.InfluxDB.formatKey' can be used to construct a 'Key'.
+--
+-- >>> "test-key" :: Key
+-- "test-key"
+-- >>> formatKey "test-key"
+-- "test-key"
+-- >>> formatKey ("test-key-"%F.decimal) 0
+-- "test-key-0"
 newtype Key = Key Text deriving (Eq, Ord)
 
 instance IsString Key where
diff --git a/tests/regressions.hs b/tests/regressions.hs
--- a/tests/regressions.hs
+++ b/tests/regressions.hs
@@ -8,7 +8,6 @@
 
 import Database.InfluxDB
 import Database.InfluxDB.Line
-import Database.InfluxDB.Write (writeByteString)
 import qualified Database.InfluxDB.Format as F
 
 main :: IO ()
