diff --git a/servant-swagger-ui-core.cabal b/servant-swagger-ui-core.cabal
--- a/servant-swagger-ui-core.cabal
+++ b/servant-swagger-ui-core.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.12
 name:               servant-swagger-ui-core
-version:            0.3.3
+version:            0.3.4
 synopsis:           Servant swagger ui core components
 category:           Web, Servant, Swagger
 description:
@@ -19,7 +19,12 @@
 license-file:       LICENSE
 build-type:         Simple
 tested-with:
-  GHC ==7.8.4 || ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5
+  GHC ==8.0.2
+   || ==8.2.2
+   || ==8.4.4
+   || ==8.6.5
+   || ==8.8.4
+   || ==8.10.2
 
 extra-source-files: Changelog.md
 
@@ -31,14 +36,14 @@
   hs-source-dirs:   src
   ghc-options:      -Wall
   build-depends:
-      base                 >=4.7      && <4.13
+      base                 >=4.7      && <4.15
     , blaze-markup         >=0.7.0.2  && <0.9
     , bytestring           >=0.10.4.0 && <0.11
     , http-media           >=0.7.1.3  && <0.9
-    , servant              >=0.14     && <0.17
+    , servant              >=0.14     && <0.19
     , servant-blaze        >=0.8      && <0.10
-    , servant-server       >=0.14     && <0.17
-    , swagger2             >=2.3.0.1  && <2.5
+    , servant-server       >=0.14     && <0.19
+    , swagger2             >=2.3.0.1  && <2.7
     , text                 >=1.2.3.0  && <1.3
     , transformers         >=0.3      && <0.6
     , transformers-compat  >=0.3      && <0.7
diff --git a/src/Servant/Swagger/UI/Core.hs b/src/Servant/Swagger/UI/Core.hs
--- a/src/Servant/Swagger/UI/Core.hs
+++ b/src/Servant/Swagger/UI/Core.hs
@@ -101,16 +101,19 @@
         proxyApi = Proxy :: Proxy api
 
 swaggerSchemaUIServerImpl
-    :: (Server api ~ Handler Swagger)
+    :: (Monad m, ServerT api m ~ m Swagger)
     => T.Text -> [(FilePath, ByteString)]
-    -> Swagger -> Server (SwaggerSchemaUI' dir api)
+    -> Swagger -> ServerT (SwaggerSchemaUI' dir api) m
 swaggerSchemaUIServerImpl indexTemplate files swagger
   = swaggerSchemaUIServerImpl' indexTemplate files $ return swagger
 
 -- | Use a custom server to serve the Swagger spec source.
 swaggerSchemaUIServerImpl'
-    :: T.Text -> [(FilePath, ByteString)]
-    -> Server api -> Server (SwaggerSchemaUI' dir api)
+    :: Monad m
+    => T.Text
+    -> [(FilePath, ByteString)]
+    -> ServerT api m
+    -> ServerT (SwaggerSchemaUI' dir api) m
 swaggerSchemaUIServerImpl' indexTemplate files server
        = server
     :<|> return (SwaggerUiHtml indexTemplate)
