diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,11 @@
 # Revision history for reflex-backend-socket
 
+## 0.2.0.1  -- 2022-05-21
+
+* Raised some upper bounds
+* Examples now use `Reflex.Host.Headless` from `reflex` instead of
+  `reflex-basic-host`.
+
 ## 0.2.0.0  -- 2019-10-29 (first hackage release)
 
 * Decoupled reflex-binary from this library. If you want incremental
diff --git a/example/Client.hs b/example/Client.hs
--- a/example/Client.hs
+++ b/example/Client.hs
@@ -5,7 +5,7 @@
 {-|
 Copyright   : (c) 2018-2019, Commonwealth Scientific and Industrial Research Organisation
 License     : BSD3
-Maintainer  : dave.laing.80@gmail.com, jack.kelly@data61.csiro.au
+Maintainer  : dave.laing.80@gmail.com, jack@jackkelly.name
 Stability   : experimental
 Portability : non-portable
 -}
@@ -20,7 +20,7 @@
 import qualified Network.Socket as NS
 import           Reflex
 import           Reflex.Backend.Socket
-import           Reflex.Host.Basic
+import           Reflex.Host.Headless
 import           Reflex.Workflow
 
 type ClientCxt t m =
@@ -54,6 +54,6 @@
   pure (eQuit, unconnected <$ eQuit)
 
 main :: IO ()
-main = basicHostWithQuit $ do
+main = runHeadlessApp $ do
   deQuit <- workflow unconnected
   pure (switchDyn deQuit)
diff --git a/example/Others.hs b/example/Others.hs
--- a/example/Others.hs
+++ b/example/Others.hs
@@ -8,7 +8,7 @@
 {-|
 Copyright   : (c) 2018-2019, Commonwealth Scientific and Industrial Research Organisation
 License     : BSD3
-Maintainer  : dave.laing.80@gmail.com, jack.kelly@data61.csiro.au
+Maintainer  : dave.laing.80@gmail.com, jack@jackkelly.name
 Stability   : experimental
 Portability : non-portable
 -}
@@ -19,17 +19,17 @@
 import qualified Data.ByteString.Char8 as BC
 import           Data.Functor ((<&>), void)
 import           Data.Maybe (isNothing)
-import           Data.Witherable (catMaybes)
 import qualified Network.Socket as NS
 import           Reflex
 import           Reflex.Backend.Socket
-import           Reflex.Host.Basic (basicHostForever, basicHostWithQuit)
+import           Reflex.Host.Headless
 import           Reflex.Network (networkHold)
 import           System.Environment (getArgs)
+import           Witherable (catMaybes)
 
 -- | Connect to a remote host, and quit as soon as something happens.
 connect1 :: IO ()
-connect1 = basicHostWithQuit $ do
+connect1 = runHeadlessApp $ do
   eQuit <- connect (Just "127.0.0.1") "9000"
   let (eError, eConnect) = fanEither eQuit
 
@@ -41,7 +41,7 @@
 -- | Listen for connections, and log them as they come in. Does
 -- nothing with arriving connections, so will leak FDs.
 accept1 :: IO ()
-accept1 = basicHostForever $ do
+accept1 = runHeadlessApp $ do
   (eListenError, eAccept) <- fanEither <$> accept
     (AcceptConfig (Just "127.0.0.1") (Just "9000") 1 [(NS.ReuseAddr, 1)] never)
 
@@ -55,12 +55,12 @@
   performEvent_ $ (liftIO . putStrLn $ "Connected") <$ eNewClient
   performEvent_ $ liftIO . print <$> eAcceptError
 
-  pure ()
+  pure never
 
 -- | Connect to a remote host. When the connection succeeds, put the
 -- @'Socket' t@ into @dSocket@, send a message, then close.
 connect2 :: IO ()
-connect2 = basicHostWithQuit $ mdo
+connect2 = runHeadlessApp $ mdo
   (eConnError, eConnect) <- fanEither <$> connect (Just "127.0.0.1") "9000"
 
   performEvent_ $ (liftIO . putStrLn $ "Connected") <$ eConnect
diff --git a/example/Server.hs b/example/Server.hs
--- a/example/Server.hs
+++ b/example/Server.hs
@@ -9,7 +9,7 @@
 {-|
 Copyright   : (c) 2018-2019, Commonwealth Scientific and Industrial Research Organisation
 License     : BSD3
-Maintainer  : dave.laing.80@gmail.com, jack.kelly@data61.csiro.au
+Maintainer  : dave.laing.80@gmail.com, jack@jackkelly.name
 Stability   : experimental
 Portability : non-portable
 -}
@@ -30,7 +30,7 @@
 import qualified Network.Socket as NS
 import           Reflex
 import           Reflex.Backend.Socket
-import           Reflex.Host.Basic
+import           Reflex.Host.Headless
 import           System.IO.Error
 
 type ServerCxt t m =
@@ -62,7 +62,7 @@
 
   pure (eOut, eShutdown, _sClose so)
 
-go :: forall t m. BasicGuestConstraints t m => BasicGuest t m (Event t ())
+go :: forall t m. MonadHeadlessApp t m => m (Event t ())
 go = mdo
   (eListenError, eAccept) <- fanEither <$> accept
     (AcceptConfig (Just "127.0.0.1") (Just "9000") 1 [(NS.ReuseAddr, 1)] eQuit)
@@ -121,4 +121,4 @@
   pure eQuit
 
 main :: IO ()
-main = basicHostWithQuit go
+main = runHeadlessApp go
diff --git a/reflex-backend-socket.cabal b/reflex-backend-socket.cabal
--- a/reflex-backend-socket.cabal
+++ b/reflex-backend-socket.cabal
@@ -2,7 +2,7 @@
 --  documentation, see http://haskell.org/cabal/users-guide/
 
 name:                reflex-backend-socket
-version:             0.2.0.0
+version:             0.2.0.1
 synopsis:            Reflex bindings for TCP sockets
 description:
   <<https://raw.githubusercontent.com/qfpl/assets/master/data61-transparent-bg.png>>
@@ -23,9 +23,11 @@
 license:             BSD3
 license-file:        LICENSE
 author:              Dave Laing
-maintainer:          dave.laing.80@gmail.com, jack.kelly@data61.csiro.au
+maintainer:          dave.laing.80@gmail.com, jack@jackkelly.name
+homepage:            https://github.com/qfpl/reflex-backend-socket/
+bug-reports:         https://github.com/qfpl/reflex-backend-socket/issues
 copyright:           (c) 2018-2019, Commonwealth Scientific and Industrial Research Organisation
-category:            Network
+category:            FRP, Network
 build-type:          Simple
 extra-source-files:  ChangeLog.md
 cabal-version:       >=1.10
@@ -40,42 +42,40 @@
                      , Reflex.Backend.Socket.Accept
                      , Reflex.Backend.Socket.Connect
                      , Reflex.Backend.Socket.Error
-  build-depends:       base              >= 4.12    && < 4.13
-                     , bytestring        >= 0.10    && < 0.11
-                     , lens              >= 4.15.4  && < 4.19
-                     , mtl               >= 2.2     && < 2.3
+  build-depends:       base              >= 4.12    && < 4.16
+                     , bytestring        >= 0.10    && < 0.12
+                     , lens              >= 4.15.4  && < 4.20 || >= 5 && <5.2
+                     , mtl               >= 2.2     && < 2.4
                      , network           >= 2.6     && < 3.2
-                     , reflex            >= 0.5     && < 0.7
-                     , semialign         >= 1       && < 1.2
+                     , reflex            >= 0.7.1.0 && < 0.9
+                     , semialign         >= 1       && < 1.3
                      , semigroupoids     >= 5.2.2   && < 5.4
                      , stm               >= 2.4     && < 2.6
-                     , these             >= 1       && < 1.1
+                     , these             >= 1       && < 1.2
   hs-source-dirs:      src
   ghc-options:         -Wall
   default-language:    Haskell2010
 
 executable example-server
   main-is:             Server.hs
-  build-depends:       base              >= 4.12    && < 4.13
-                     , bytestring        >= 0.10    && < 0.11
+  build-depends:       base
+                     , bytestring
                      , containers        >= 0.5     && < 0.7
-                     , lens              >= 4.15.4  && < 4.19
-                     , network           >= 2.6     && < 3.2
-                     , reflex            >= 0.5     && < 0.7
+                     , lens
+                     , network
+                     , reflex
                      , reflex-backend-socket
-                     , reflex-basic-host >= 0.2     && < 0.3
   hs-source-dirs:      example
   ghc-options:         -Wall -threaded
   default-language:    Haskell2010
 
 executable example-client
   main-is:             Client.hs
-  build-depends:       base              >= 4.12    && < 4.13
-                     , bytestring        >= 0.10    && < 0.11
-                     , network           >= 2.6     && < 3.2
-                     , reflex            >= 0.5     && < 0.7
+  build-depends:       base
+                     , bytestring
+                     , network
+                     , reflex
                      , reflex-backend-socket
-                     , reflex-basic-host >= 0.2     && < 0.3
   hs-source-dirs:      example
   ghc-options:         -Wall -threaded
   default-language:    Haskell2010
@@ -83,13 +83,12 @@
 
 executable example-others
   main-is:             Others.hs
-  build-depends:       base              >= 4.12    && < 4.13
-                     , bytestring        >= 0.10    && < 0.11
-                     , network           >= 2.6     && < 3.2
-                     , reflex            >= 0.5     && < 0.7
+  build-depends:       base
+                     , bytestring
+                     , network
+                     , reflex
                      , reflex-backend-socket
-                     , reflex-basic-host >= 0.2     && < 0.3
-                     , witherable        >= 0.2     && < 0.4
+                     , witherable        >= 0.4     && < 0.5
   hs-source-dirs:      example
   ghc-options:         -Wall -threaded
   default-language:    Haskell2010
