diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## Version 2.1.3
+
+* Remove `data-default` version constraint.
+  [#492](https://github.com/haskell-tls/hs-tls/pull/492)
+* Exporting default variables.
+  [#448](https://github.com/haskell-tls/hs-tls/pull/488)
+
 ## Version 2.1.2
 
 * Using data-default instead of data-default-class.
diff --git a/Network/TLS.hs b/Network/TLS.hs
--- a/Network/TLS.hs
+++ b/Network/TLS.hs
@@ -55,6 +55,7 @@
 
     -- ** Server parameters
     ServerParams,
+    defaultParamsServer,
     serverWantClientCert,
     serverCACertificates,
     serverDHEParams,
@@ -67,6 +68,7 @@
 
     -- ** Shared
     Shared,
+    defaultShared,
     sharedCredentials,
     sharedSessionManager,
     sharedCAStore,
@@ -75,6 +77,7 @@
 
     -- ** Client hooks
     ClientHooks,
+    defaultClientHooks,
     OnCertificateRequest,
     onCertificateRequest,
     OnServerCertificate,
@@ -85,6 +88,7 @@
 
     -- ** Server hooks
     ServerHooks,
+    defaultServerHooks,
     onClientCertificate,
     onUnverifiedClientCert,
     onCipherChoosing,
@@ -99,6 +103,7 @@
 
     -- ** Supported
     Supported,
+    defaultSupported,
     supportedVersions,
     supportedCiphers,
     supportedCompressions,
@@ -113,6 +118,7 @@
 
     -- ** Debug parameters
     DebugParams,
+    defaultDebugParams,
     debugSeed,
     debugPrintSeed,
     debugVersionForced,
@@ -231,6 +237,7 @@
 
     -- ** Modifying hooks in context
     Hooks,
+    defaultHooks,
     hookRecvHandshake,
     hookRecvHandshake13,
     hookRecvCertificates,
@@ -242,6 +249,7 @@
     contextHookSetHandshake13Recv,
     contextHookSetCertificateRecv,
     Logging,
+    defaultLogging,
     loggingPacketSent,
     loggingPacketRecv,
     loggingIOSent,
@@ -324,7 +332,7 @@
 
 import Data.ByteString as B
 import Data.X509 (PrivKey (..), PubKey (..))
-import Data.X509.Validation hiding (HostName)
+import Data.X509.Validation hiding (HostName, defaultHooks)
 
 {-# DEPRECATED Bytes "Use Data.ByteString.Bytestring instead of Bytes." #-}
 type Bytes = B.ByteString
diff --git a/Network/TLS/Hooks.hs b/Network/TLS/Hooks.hs
--- a/Network/TLS/Hooks.hs
+++ b/Network/TLS/Hooks.hs
@@ -1,11 +1,12 @@
 module Network.TLS.Hooks (
     Logging (..),
+    defaultLogging,
     Hooks (..),
     defaultHooks,
 ) where
 
 import qualified Data.ByteString as B
-import Data.Default
+import Data.Default (Default (def))
 import Network.TLS.Struct (Handshake, Header)
 import Network.TLS.Struct13 (Handshake13)
 import Network.TLS.X509 (CertificateChain)
diff --git a/Network/TLS/Parameters.hs b/Network/TLS/Parameters.hs
--- a/Network/TLS/Parameters.hs
+++ b/Network/TLS/Parameters.hs
@@ -1,17 +1,21 @@
 module Network.TLS.Parameters (
     ClientParams (..),
+    defaultParamsClient,
     ServerParams (..),
+    defaultParamsServer,
     CommonParams,
     DebugParams (..),
+    defaultDebugParams,
     ClientHooks (..),
+    defaultClientHooks,
     OnCertificateRequest,
     OnServerCertificate,
     ServerHooks (..),
+    defaultServerHooks,
     Supported (..),
+    defaultSupported,
     Shared (..),
-
-    -- * special default
-    defaultParamsClient,
+    defaultShared,
 
     -- * Parameters
     MaxFragmentEnum (..),
@@ -23,7 +27,7 @@
 ) where
 
 import qualified Data.ByteString as B
-import Data.Default
+import Data.Default (Default (def))
 import Network.TLS.Cipher
 import Network.TLS.Compression
 import Network.TLS.Credentials
@@ -409,14 +413,17 @@
 instance Show Shared where
     show _ = "Shared"
 instance Default Shared where
-    def =
-        Shared
-            { sharedCredentials = mempty
-            , sharedSessionManager = noSessionManager
-            , sharedCAStore = mempty
-            , sharedValidationCache = def
-            , sharedHelloExtensions = []
-            }
+    def = defaultShared
+
+defaultShared :: Shared
+defaultShared =
+    Shared
+        { sharedCredentials = mempty
+        , sharedSessionManager = noSessionManager
+        , sharedCAStore = mempty
+        , sharedValidationCache = def
+        , sharedHelloExtensions = []
+        }
 
 -- | Group usage callback possible return values.
 data GroupUsage
diff --git a/Network/TLS/QUIC.hs b/Network/TLS/QUIC.hs
--- a/Network/TLS/QUIC.hs
+++ b/Network/TLS/QUIC.hs
@@ -81,13 +81,13 @@
 import Network.TLS.Handshake.State13
 import Network.TLS.Imports
 import Network.TLS.KeySchedule (hkdfExpandLabel, hkdfExtract)
-import Network.TLS.Parameters
+import Network.TLS.Parameters hiding (defaultSupported)
 import Network.TLS.Record.Layer
 import Network.TLS.Record.State
 import Network.TLS.Struct
 import Network.TLS.Types
 
-import Data.Default
+import Data.Default (def)
 
 nullBackend :: Backend
 nullBackend =
diff --git a/test/Arbitrary.hs b/test/Arbitrary.hs
--- a/test/Arbitrary.hs
+++ b/test/Arbitrary.hs
@@ -5,7 +5,7 @@
 
 import Control.Monad
 import qualified Data.ByteString as B
-import Data.Default
+import Data.Default (def)
 import Data.List
 import Data.Word
 import Data.X509 (
diff --git a/test/HandshakeSpec.hs b/test/HandshakeSpec.hs
--- a/test/HandshakeSpec.hs
+++ b/test/HandshakeSpec.hs
@@ -5,7 +5,7 @@
 import Control.Monad
 import qualified Data.ByteString as B
 import qualified Data.ByteString.Lazy as L
-import Data.Default
+import Data.Default (def)
 import Data.IORef
 import Data.List
 import Data.Maybe
diff --git a/test/Run.hs b/test/Run.hs
--- a/test/Run.hs
+++ b/test/Run.hs
@@ -21,7 +21,7 @@
 import Data.ByteString (ByteString)
 import qualified Data.ByteString as B
 import qualified Data.ByteString.Lazy as L
-import Data.Default
+import Data.Default (def)
 import Data.IORef
 import Network.TLS
 import System.Timeout
diff --git a/tls.cabal b/tls.cabal
--- a/tls.cabal
+++ b/tls.cabal
@@ -1,6 +1,6 @@
 cabal-version:      >=1.10
 name:               tls
-version:            2.1.2
+version:            2.1.3
 license:            BSD3
 license-file:       LICENSE
 copyright:          Vincent Hanquez <vincent@snarc.org>
@@ -122,7 +122,7 @@
         crypton-x509 >= 1.7 && < 1.8,
         crypton-x509-store >= 1.6 && < 1.7,
         crypton-x509-validation >= 1.6.5 && < 1.7,
-        data-default >= 0.8 && < 0.9,
+        data-default,
         memory >= 0.18 && < 0.19,
         mtl >= 2.2 && < 2.4,
         network >= 3.1,
diff --git a/util/tls-client.hs b/util/tls-client.hs
--- a/util/tls-client.hs
+++ b/util/tls-client.hs
@@ -5,6 +5,7 @@
 module Main where
 
 import Control.Concurrent
+import qualified Control.Exception as E
 import qualified Data.ByteString.Base16 as BS16
 import qualified Data.ByteString.Char8 as C8
 import Data.Default (def)
@@ -12,12 +13,11 @@
 import Data.X509.CertificateStore
 import Network.Run.TCP
 import Network.Socket
-import Network.TLS
+import Network.TLS hiding (is0RTTPossible)
 import System.Console.GetOpt
 import System.Environment
 import System.Exit
 import System.X509
-import qualified UnliftIO.Exception as E
 
 import Client
 import Common
diff --git a/util/tls-server.hs b/util/tls-server.hs
--- a/util/tls-server.hs
+++ b/util/tls-server.hs
@@ -5,6 +5,7 @@
 
 module Main where
 
+import qualified Control.Exception as E
 import qualified Data.ByteString.Base16 as BS16
 import qualified Data.ByteString.Char8 as C8
 import Data.Default (def)
@@ -16,7 +17,6 @@
 import System.Environment (getArgs)
 import System.Exit
 import System.IO
-import qualified UnliftIO.Exception as E
 
 import Common
 import Imports
