diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,5 +1,9 @@
 # ChangeLog
 
+## 4.2.0
+
+- Switching cryptonite to crypton.
+
 ## 4.1.1
 
 - Adding encoder/decoder for CAA RR.
diff --git a/Network/DNS.hs b/Network/DNS.hs
--- a/Network/DNS.hs
+++ b/Network/DNS.hs
@@ -8,6 +8,7 @@
 --
 --   Examples:
 --
+--   >>> :set -XOverloadedStrings
 --   >>> rs <- makeResolvSeed defaultResolvConf
 --   >>> withResolver rs $ \resolver -> lookupA resolver "192.0.2.1.nip.io"
 --   Right [192.0.2.1]
diff --git a/Network/DNS/Lookup.hs b/Network/DNS/Lookup.hs
--- a/Network/DNS/Lookup.hs
+++ b/Network/DNS/Lookup.hs
@@ -41,11 +41,11 @@
 --   by creating and utilizing a 'ResolvConf' which has a timeout of
 --   one millisecond and a very limited number of retries:
 --
---   >>> let hostname = Data.ByteString.Char8.pack "www.example.com"
+--   >>> let hostname2 = Data.ByteString.Char8.pack "www.example.com"
 --   >>> let badrc = defaultResolvConf { resolvTimeout = 0, resolvRetry = 1 }
 --   >>>
---   >>> rs <- makeResolvSeed badrc
---   >>> withResolver rs $ \resolver -> lookupA resolver hostname
+--   >>> rs2 <- makeResolvSeed badrc
+--   >>> withResolver rs2 $ \resolver -> lookupA resolver hostname2
 --   Left RetryLimitExceeded
 --
 --   As is the convention, successful results will always be wrapped
@@ -80,6 +80,9 @@
 import Network.DNS.Resolver as DNS
 import Network.DNS.Types.Internal
 
+-- $setup
+-- >>> :set -XOverloadedStrings
+
 ----------------------------------------------------------------
 
 -- | Look up all \'A\' records for the given hostname.
@@ -93,8 +96,8 @@
 --   This function will also follow a CNAME and resolve its target if
 --   one exists for the queried hostname:
 --
---   >>> rs <- makeResolvSeed defaultResolvConf
---   >>> withResolver rs $ \resolver -> lookupA resolver "www.kame.net"
+--   >>> rs2 <- makeResolvSeed defaultResolvConf
+--   >>> withResolver rs2 $ \resolver -> lookupA resolver "www.kame.net"
 --   Right [210.155.141.200]
 --
 lookupA :: Resolver -> Domain -> IO (Either DNSError [IPv4])
@@ -147,8 +150,8 @@
 --
 --   The domain \"mew.org\" does however have a single MX:
 --
---   >>> rs <- makeResolvSeed defaultResolvConf
---   >>> withResolver rs $ \resolver -> lookupMX resolver "mew.org"
+--   >>> rs2 <- makeResolvSeed defaultResolvConf
+--   >>> withResolver rs2 $ \resolver -> lookupMX resolver "mew.org"
 --   Right [("mail.mew.org.",10)]
 --
 --   Also note that all hostnames are returned with a trailing dot to
@@ -157,8 +160,8 @@
 --   However the MX host itself has no need for an MX record, so its MX RRset
 --   is empty.  But, \"no results\" is still a successful result.
 --
---   >>> rs <- makeResolvSeed defaultResolvConf
---   >>> withResolver rs $ \resolver -> lookupMX resolver "mail.mew.org"
+--   >>> rs3 <- makeResolvSeed defaultResolvConf
+--   >>> withResolver rs3 $ \resolver -> lookupMX resolver "mail.mew.org"
 --   Right []
 --
 lookupMX :: Resolver -> Domain -> IO (Either DNSError [(Domain,Int)])
@@ -415,7 +418,7 @@
 --
 --   >>> rs <- makeResolvSeed defaultResolvConf
 --   >>> withResolver rs $ \resolver -> lookupSRV resolver "_xmpp-server._tcp.jabber.ietf.org"
---   Right [(5,0,5269,"jabber.ietf.org.")]
+--   Right [(5,0,5269,"_dc-srv.6661af51975d._xmpp-server._tcp.jabber.ietf.org.")]
 
 -- Though the "jabber.ietf.orgs" SRV record may prove reasonably stable, as
 -- with anything else published in DNS it is subject to change.  Also, this
diff --git a/dns.cabal b/dns.cabal
--- a/dns.cabal
+++ b/dns.cabal
@@ -1,136 +1,138 @@
-Name:                   dns
-Version:                4.1.1
-Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
-Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
-License:                BSD3
-License-File:           LICENSE
-Synopsis:               DNS library in Haskell
-Description:
-  A thread-safe DNS library for both clients and servers written
-  in pure Haskell.
-Category:               Network
-Cabal-Version:          2.0
-Build-Type:             Simple
-Extra-Source-Files:     Changelog.md
-                        cabal.project
-                        cbits/dns.c
-Tested-With:            GHC == 8.0.2
-                      , GHC == 8.2.2
-                      , GHC == 8.4.4
-                      , GHC == 8.6.5
-                      , GHC == 8.8.1
+cabal-version:      2.0
+name:               dns
+version:            4.2.0
+license:            BSD3
+license-file:       LICENSE
+maintainer:         Kazu Yamamoto <kazu@iij.ad.jp>
+author:             Kazu Yamamoto <kazu@iij.ad.jp>
+tested-with:
+    ghc ==8.0.2 ghc ==8.2.2 ghc ==8.4.4 ghc ==8.6.5 ghc ==8.8.1
 
-Library dns-internal
-  Default-Language:     Haskell2010
-  GHC-Options:          -Wall
-  Hs-Source-Dirs:       internal
-  Exposed-Modules:      Network.DNS.Imports
-                        Network.DNS.Types.Internal
-                        Network.DNS.Types.Resolver
-                        Network.DNS.Resolver.Internal
-                        Network.DNS.Decode.Parsers
-                        Network.DNS.Decode.Internal
-                        Network.DNS.Encode.Builders
-                        Network.DNS.Encode.Internal
-                        Network.DNS.StateBinary
-                        Network.DNS.Memo
-                        Network.DNS.Base32Hex
-  Build-Depends:        base
-                      , array
-                      , async
-                      , attoparsec
-                      , auto-update
-                      , base16-bytestring
-                      , base64-bytestring
-                      , bytestring
-                      , case-insensitive
-                      , containers
-                      , cryptonite
-                      , hourglass
-                      , iproute
-                      , mtl
-                      , network
-                      , psqueues
-  if os(windows)
-    C-Sources:        cbits/dns.c
-    Extra-Libraries:  iphlpapi
+synopsis:           DNS library in Haskell
+description:
+    A thread-safe DNS library for both clients and servers written
+    in pure Haskell.
 
-Library
-  Default-Language:     Haskell2010
-  GHC-Options:          -Wall
-  Exposed-Modules:      Network.DNS
-                        Network.DNS.Lookup
-                        Network.DNS.LookupRaw
-                        Network.DNS.Resolver
-                        Network.DNS.Utils
-                        Network.DNS.Types
-                        Network.DNS.Decode
-                        Network.DNS.Encode
-                        Network.DNS.IO
-  Other-Modules:        Network.DNS.Transport
-  Build-Depends:        dns-internal
-                      , base >= 4 && < 5
-                      , array
-                      , async
-                      , attoparsec
-                      , auto-update
-                      , base16-bytestring
-                      , base64-bytestring
-                      , bytestring
-                      , containers
-                      , cryptonite
-                      , hourglass
-                      , iproute >= 1.3.2
-                      , mtl
-                      , network >= 2.3
-                      , psqueues
+category:           Network
+build-type:         Simple
+extra-source-files:
+    Changelog.md
+    cabal.project
+    cbits/dns.c
 
-Test-Suite network-tests
-  Type:                 exitcode-stdio-1.0
-  Default-Language:     Haskell2010
-  Hs-Source-Dirs:       test2
-  Ghc-Options:          -Wall
-  Main-Is:              Spec.hs
-  Other-Modules:        LookupSpec
-                        IOSpec
-  Build-Depends:        dns
-                      , dns-internal
-                      , base
-                      , hspec
-                      , network
-  Build-Tool-Depends:   hspec-discover:hspec-discover
+source-repository head
+    type:     git
+    location: https://github.com/kazu-yamamoto/dns.git
 
-Test-Suite spec-tests
-  Type:                 exitcode-stdio-1.0
-  Default-Language:     Haskell2010
-  Hs-Source-Dirs:       test
-  Ghc-Options:          -Wall
-  Main-Is:              Spec.hs
-  Other-Modules:        EncodeSpec
-                        DecodeSpec
-                        RoundTripSpec
-  Build-Depends:        dns
-                      , dns-internal
-                      , QuickCheck >= 2.9
-                      , base
-                      , bytestring
-                      , case-insensitive
-                      , hspec
-                      , iproute >= 1.3.2
-                      , word8
-  Build-Tool-Depends:   hspec-discover:hspec-discover
+library
+    exposed-modules:
+        Network.DNS
+        Network.DNS.Lookup
+        Network.DNS.LookupRaw
+        Network.DNS.Resolver
+        Network.DNS.Utils
+        Network.DNS.Types
+        Network.DNS.Decode
+        Network.DNS.Encode
+        Network.DNS.IO
 
-Test-Suite doctests
-  Type:                 exitcode-stdio-1.0
-  Default-Language:     Haskell2010
-  Hs-Source-Dirs:       test2
-  Ghc-Options:          -Wall -threaded
-  Main-Is:              doctests.hs
-  Other-Modules:        Paths_dns
-  Autogen-Modules:      Paths_dns
-  Build-Depends:        base
-                      , doctest
+    other-modules:    Network.DNS.Transport
+    default-language: Haskell2010
+    ghc-options:      -Wall
+    build-depends:
+        dns-internal,
+        base >=4 && <5,
+        array,
+        async,
+        attoparsec,
+        auto-update,
+        base16-bytestring,
+        base64-bytestring,
+        bytestring,
+        containers,
+        crypton,
+        hourglass,
+        iproute >=1.3.2,
+        mtl,
+        network >=2.3,
+        psqueues
 
-Source-Repository head
-  Type:                 git
-  Location:             git://github.com/kazu-yamamoto/dns.git
+library dns-internal
+    exposed-modules:
+        Network.DNS.Imports
+        Network.DNS.Types.Internal
+        Network.DNS.Types.Resolver
+        Network.DNS.Resolver.Internal
+        Network.DNS.Decode.Parsers
+        Network.DNS.Decode.Internal
+        Network.DNS.Encode.Builders
+        Network.DNS.Encode.Internal
+        Network.DNS.StateBinary
+        Network.DNS.Memo
+        Network.DNS.Base32Hex
+
+    hs-source-dirs:   internal
+    default-language: Haskell2010
+    ghc-options:      -Wall
+    build-depends:
+        base,
+        array,
+        async,
+        attoparsec,
+        auto-update,
+        base16-bytestring,
+        base64-bytestring,
+        bytestring,
+        case-insensitive,
+        containers,
+        crypton,
+        hourglass,
+        iproute,
+        mtl,
+        network,
+        psqueues
+
+    if os(windows)
+        c-sources:       cbits/dns.c
+        extra-libraries: iphlpapi
+
+test-suite network-tests
+    type:               exitcode-stdio-1.0
+    main-is:            Spec.hs
+    build-tool-depends: hspec-discover:hspec-discover
+    hs-source-dirs:     test2
+    other-modules:
+        LookupSpec
+        IOSpec
+
+    default-language:   Haskell2010
+    ghc-options:        -Wall
+    build-depends:
+        dns,
+        dns-internal,
+        base,
+        hspec,
+        network
+
+test-suite spec-tests
+    type:               exitcode-stdio-1.0
+    main-is:            Spec.hs
+    build-tool-depends: hspec-discover:hspec-discover
+    hs-source-dirs:     test
+    other-modules:
+        EncodeSpec
+        DecodeSpec
+        RoundTripSpec
+
+    default-language:   Haskell2010
+    ghc-options:        -Wall
+    build-depends:
+        dns,
+        dns-internal,
+        QuickCheck >=2.9,
+        base,
+        bytestring,
+        case-insensitive,
+        hspec,
+        iproute >=1.3.2,
+        word8
diff --git a/test2/doctests.hs b/test2/doctests.hs
deleted file mode 100644
--- a/test2/doctests.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-{-# LANGUAGE CPP #-}
-
--- | Run doctests only on non-Windows systems with GHC 8.4 or later.
---
--- The Windows doctests now compile and run, but either succeed quickly or
--- randomly hang (before AppVeyor kills them after an hour).  So we disable
--- these for now.  This can be tested again at some point in the future.
---
-module Main where
-
-#if !defined(mingw32_HOST_OS) && MIN_TOOL_VERSION_ghc(8,4,0)
-import Test.DocTest
-import System.Environment
-
--- | Expose precompiled library modules.
-modules :: [String]
-modules =
-  [ "-XOverloadedStrings"
-  , "-XCPP"
-  , "-XLambdaCase"
-  , "-XPatternSynonyms"
-  , "-i","-i.","-iinternal"
-  , "-threaded"
-  , "-package=dns"
-  , "Network/DNS.hs"
-  ]
-
-main :: IO ()
-main = getArgs >>= doctest . (++ modules)
-
-#else
-
-main :: IO ()
-main = return ()
-
-#endif
