diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,13 +1,33 @@
+# network-uri-2.6.3.0 (2020-02-18)
+* Add official support for SafeHaskell
+  NOTE: This is the first version whose SafeHaskell properties have become an
+  intentional part of the API contract; previous versions were merely
+  accidentally safe-inferred (or not depending on various factors; in other
+  words, this was a fragile property).
+* Derive `Lift` instances using `DeriveLift` extension, when available.
+
 # network-uri-2.6.2.0 (2020-01-30)
-* Merge network-uri-static (Network.URI.Static) into this package
+* Mark the modules as Safe for SafeHaskell.
+
+# network-uri-2.6.2.0 (2020-01-30)
+* Merge network-uri-static (Network.URI.Static) into this
+  package, which offers a way to parse URI strings at compile time.
 * Add `Lens`es for the `URI` types
-* Optimize `isReserved` and related character-class functions
 * Add `Generic` instances for the `URI` type
 * Add `Lift` instances for the `URI` type
-
-# network-uri-2.6.2.0 (2019-??-??)
+* Optimize `isReserved` and related character-class functions.
 * Start to add some benchmarks for performance analysis
-* Correctly parse IPv6 addresses in URIs
+* Fix a bug: Correctly parse IPv6 addresses in URIs.
 * Add `rectify` which normalizes a URI if it is missing certain
-  separator characters required by the module, which some users find
-  inconvenient.
+  separator characters required by the module. Some users found adding
+  those characters inconvenient when building a URI from parts.
+* Add `nullURIAuth` and `uriAuthToString`, paralleling `nullURI` and `uriToString`.
+
+# network-uri-2.6.0.3
+* Fix a bug with IPv4 address parsing.
+
+# network-uri-2.6.0.2
+* Implement Generic and NFData.
+
+# network-uri-2.6.0.0
+* Initial release: Module split off from `network`.
diff --git a/Network/URI.hs b/Network/URI.hs
--- a/Network/URI.hs
+++ b/Network/URI.hs
@@ -1,9 +1,15 @@
 {-# LANGUAGE RecordWildCards, CPP #-}
-#if __GLASGOW_HASKELL__ < 800
-{-# LANGUAGE TemplateHaskell #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE DeriveLift, StandaloneDeriving #-}
 #else
-{-# LANGUAGE TemplateHaskellQuotes #-}
+{-# LANGUAGE TemplateHaskell #-}
 #endif
+#if MIN_VERSION_template_haskell(2,12,0) && MIN_VERSION_parsec(3,13,0)
+{-# LANGUAGE Safe #-}
+#elif __GLASGOW_HASKELL__ >= 702
+{-# LANGUAGE Trustworthy #-}
+#endif
+
 --------------------------------------------------------------------------------
 -- |
 --  Module      :  Network.URI
@@ -1370,11 +1376,16 @@
 --  Lift instances to support Network.URI.Static
 ------------------------------------------------------------
 
+#if __GLASGOW_HASKELL__ >= 800
+deriving instance Lift URI
+deriving instance Lift URIAuth
+#else
 instance Lift URI where
     lift (URI {..}) = [| URI {..} |]
 
 instance Lift URIAuth where
     lift (URIAuth {..}) = [| URIAuth {..} |]
+#endif
 
 ------------------------------------------------------------
 --  Deprecated functions
diff --git a/Network/URI/Lens.hs b/Network/URI/Lens.hs
--- a/Network/URI/Lens.hs
+++ b/Network/URI/Lens.hs
@@ -1,4 +1,10 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE Rank2Types #-}
+#if __GLASGOW_HASKELL__ > 704
+{-# LANGUAGE Safe #-}
+#elif __GLASGOW_HASKELL__ > 702
+{-# LANGUAGE Trustworthy #-}
+#endif
 -- | Network uri lenses
 module Network.URI.Lens
   ( uriRegNameLens
diff --git a/Network/URI/Static.hs b/Network/URI/Static.hs
--- a/Network/URI/Static.hs
+++ b/Network/URI/Static.hs
@@ -3,6 +3,11 @@
 #else
 {-# LANGUAGE RecordWildCards, TemplateHaskellQuotes, ViewPatterns #-}
 #endif
+#if MIN_VERSION_template_haskell(2,12,0)
+{-# LANGUAGE Safe #-}
+#elif __GLASGOW_HASKELL__ >= 702
+{-# LANGUAGE Trustworthy #-}
+#endif
 module Network.URI.Static
     (
     -- * Absolute URIs
diff --git a/network-uri.cabal b/network-uri.cabal
--- a/network-uri.cabal
+++ b/network-uri.cabal
@@ -1,5 +1,5 @@
 name:                network-uri
-version:             2.6.2.0
+version:             2.6.3.0
 synopsis:            URI manipulation
 description:
   This package provides facilities for parsing and unparsing URIs, and creating
@@ -67,7 +67,7 @@
   build-depends:
     base >= 3 && < 5,
     deepseq >= 1.1 && < 1.5,
-    parsec >= 3.0 && < 3.2
+    parsec >= 3.1.12.0 && < 3.2
   build-depends: template-haskell
   default-extensions: CPP, DeriveDataTypeable
   if impl(ghc < 7.6)
diff --git a/tests/uri-bench.hs b/tests/uri-bench.hs
--- a/tests/uri-bench.hs
+++ b/tests/uri-bench.hs
@@ -53,4 +53,7 @@
       bench "isReserved a" $ nf isReserved 'a'
       , bench "isReserved :" $ nf isReserved ':'
     ]
+  ,
+    bench "parseURI" $
+      nf parseURI "http://foo@bar.quix.gov/flip/flop?a=b&c=d"
   ]
