diff --git a/src/Web/Rep/Shared.hs b/src/Web/Rep/Shared.hs
--- a/src/Web/Rep/Shared.hs
+++ b/src/Web/Rep/Shared.hs
@@ -22,7 +22,6 @@
 where
 
 import Control.Applicative
-import Control.Monad.IO.Class
 import Control.Monad.State.Lazy
 import Data.Biapplicative
 import Data.HashMap.Strict (HashMap)
@@ -81,7 +80,7 @@
 
 -- | stateful result of one step, given a 'Rep', and a monadic action.
 -- Useful for testing and for initialising a page.
-oneRep :: (Monad m, MonadIO m) => Rep a -> (Rep a -> HashMap Text Text -> m ()) -> StateT (HashMap Text Text) m (HashMap Text Text, Either Text a)
+oneRep :: (Monad m) => Rep a -> (Rep a -> HashMap Text Text -> m ()) -> StateT (HashMap Text Text) m (HashMap Text Text, Either Text a)
 oneRep r@(Rep _ fa) action = do
   m <- get
   let (m', a) = fa m
diff --git a/src/Web/Rep/SharedReps.hs b/src/Web/Rep/SharedReps.hs
--- a/src/Web/Rep/SharedReps.hs
+++ b/src/Web/Rep/SharedReps.hs
@@ -507,11 +507,11 @@
     HashMap.filterWithKey (\k _ -> k `elem` ks) m
 
 -- | rep of multiple items list
-repItemsSelect :: Monad m => [Text] -> [Text] -> SharedRep m [Text]
+repItemsSelect :: (Monad m) => [Text] -> [Text] -> SharedRep m [Text]
 repItemsSelect initial full =
   dropdownMultiple (A.takeWhile (`notElem` ([','] :: [Char]))) id (Just "items") full initial
 
-subtype :: With a => a -> Text -> Text -> a
+subtype :: (With a) => a -> Text -> Text -> a
 subtype h origt t =
   with
     h
diff --git a/src/Web/Rep/Socket.hs b/src/Web/Rep/Socket.hs
--- a/src/Web/Rep/Socket.hs
+++ b/src/Web/Rep/Socket.hs
@@ -156,7 +156,7 @@
 
 -- | Stream a SharedRep
 sharedStream ::
-  Monad m => SharedRep m a -> Committer m (Html ()) -> Committer m (Either Text a) -> Emitter m (Text, Text) -> m ()
+  (Monad m) => SharedRep m a -> Committer m (Html ()) -> Committer m (Either Text a) -> Emitter m (Text, Text) -> m ()
 sharedStream sr ch c e =
   flip evalStateT (0, HashMap.empty) $ do
     -- you only want to run unshare once for a SharedRep
diff --git a/web-rep.cabal b/web-rep.cabal
--- a/web-rep.cabal
+++ b/web-rep.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               web-rep
-version:            0.10.0
+version:            0.10.1
 synopsis:           representations of a web page
 category:           web
 description:
@@ -12,7 +12,8 @@
 license-file:       LICENSE.md
 build-type:         Simple
 extra-source-files: ChangeLog.md
-tested-with:        GHC ==8.8.4 || ==8.10.7 || ==9.2.1
+tested-with:
+  GHC ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.2.5 || ==9.4.4
 
 source-repository head
   type:     git
@@ -39,17 +40,17 @@
     , bifunctors                ^>=5.5.11
     , box                       >=0.9
     , box-socket                ^>=0.4
-    , clay                      ^>=0.13
+    , clay                      >=0.13 && <0.15
     , interpolatedstring-perl6  ^>=1.0
     , language-javascript       >=0.6.0   && <0.8
-    , lucid                     ^>=2.9
-    , mtl                       ^>=2.2.2
+    , lucid                     >=2.9 && <2.12
+    , mtl                       >=2.2.2 && <2.4
     , optics-core               ^>=0.4
     , optics-extra              ^>=0.4
     , profunctors
     , scotty                    >=0.11.5  && <0.13
-    , text                      ^>=1.2.3
-    , transformers              ^>=0.5.6
+    , text                      >=1.2.3 && <2.1
+    , transformers              >=0.5.6 && <0.6.2
     , unordered-containers      ^>=0.2.10
     , wai-middleware-static     ^>=0.9
     , wai-websockets            ^>=3.0.1.2
@@ -60,8 +61,7 @@
   default-extensions:
   ghc-options:
     -Wall -Wcompat -Wincomplete-record-updates
-    -Wincomplete-uni-patterns -Wredundant-constraints -fwrite-ide-info
-    -hiedir=.hie
+    -Wincomplete-uni-patterns -Wredundant-constraints
 
 executable web-rep-example
   main-is:            rep-example.hs
@@ -81,5 +81,4 @@
     -Wall -Wcompat -Wincomplete-record-updates
     -Wincomplete-uni-patterns -Wredundant-constraints
     -funbox-strict-fields -fforce-recomp -threaded -rtsopts
-    -with-rtsopts=-N -fwrite-ide-info -hiedir=.hie
-
+    -with-rtsopts=-N
