diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,11 @@
 
 ## [Unreleased]
 
+## [1.0.5] - 2023-05-04
+
+### Changed
+- Update dependency bounds and GHC versions
+
 ## [1.0.4] - 2022-08-27
 
 ### Changed
@@ -29,7 +34,8 @@
 - Extracted webgear-core from webgear-server
 - New arrow based API
 
-[Unreleased]: https://github.com/haskell-webgear/webgear/compare/v1.0.4...HEAD
+[Unreleased]: https://github.com/haskell-webgear/webgear/compare/v1.0.5...HEAD
+[1.0.5]: https://github.com/haskell-webgear/webgear/releases/tag/v1.0.5
 [1.0.4]: https://github.com/haskell-webgear/webgear/releases/tag/v1.0.4
 [1.0.3]: https://github.com/haskell-webgear/webgear/releases/tag/v1.0.3
 [1.0.2]: https://github.com/haskell-webgear/webgear/releases/tag/v1.0.2
diff --git a/src/WebGear/Core/Handler.hs b/src/WebGear/Core/Handler.hs
--- a/src/WebGear/Core/Handler.hs
+++ b/src/WebGear/Core/Handler.hs
@@ -82,7 +82,9 @@
 -- | Indicates that the request does not match the current handler.
 routeMismatch :: ArrowError RouteMismatch h => h a b
 routeMismatch = proc _a -> raise -< RouteMismatch
+{-# INLINE routeMismatch #-}
 
 -- | Lifts `unlink` into a handler arrow.
 unlinkA :: Handler h m => h (Linked ts Response) Response
 unlinkA = arr unlink
+{-# INLINE unlinkA #-}
diff --git a/src/WebGear/Core/Trait.hs b/src/WebGear/Core/Trait.hs
--- a/src/WebGear/Core/Trait.hs
+++ b/src/WebGear/Core/Trait.hs
@@ -1,4 +1,4 @@
- {-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
 
 {- | Traits are optional attributes associated with a value. For
  example, a list containing totally ordered values might have a
@@ -77,14 +77,16 @@
     -- with other traits
     h (Linked ts a, Attribute t a) (Linked (t : ts) a)
 
--- | @Gets h ts a@ is equivalent to @(Get h t1 a, Get h t2 a, ..., Get
--- h tn a)@ where @ts = [t1, t2, ..., tn]@.
+{- | @Gets h ts a@ is equivalent to @(Get h t1 a, Get h t2 a, ..., Get
+ h tn a)@ where @ts = [t1, t2, ..., tn]@.
+-}
 type family Gets h ts a :: Constraint where
   Gets h '[] a = ()
   Gets h (t : ts) a = (Get h t a, Gets h ts a)
 
--- | @Sets h ts a@ is equivalent to @(Set h t1 a, Set h t2 a, ..., Set
--- h tn a)@ where @ts = [t1, t2, ..., tn]@.
+{- | @Sets h ts a@ is equivalent to @(Set h t1 a, Set h t2 a, ..., Set
+ h tn a)@ where @ts = [t1, t2, ..., tn]@.
+-}
 type family Sets h ts a :: Constraint where
   Sets h '[] a = ()
   Sets h (t : ts) a = (Set h t a, Sets h ts a)
@@ -92,8 +94,8 @@
 -- | A value linked with a type-level list of traits.
 data Linked (ts :: [Type]) a = Linked
   { linkAttribute :: !(LinkedAttributes ts a)
-  , -- | Retrive the value from a linked value
-    unlink :: !a
+  , unlink :: !a
+  -- ^ Retrive the value from a linked value
   }
 
 type family LinkedAttributes (ts :: [Type]) (a :: Type) where
@@ -103,10 +105,12 @@
 -- | Wrap a value with an empty list of traits.
 linkzero :: a -> Linked '[] a
 linkzero = Linked ()
+{-# INLINE linkzero #-}
 
 -- | Forget the head trait
 linkminus :: Linked (t : ts) a -> Linked ts a
 linkminus (Linked (_, rv) a) = Linked rv a
+{-# INLINE linkminus #-}
 
 {- | Attempt to link an additional trait with an already linked
  value. This can fail indicating an 'Absence' of the trait.
@@ -123,15 +127,18 @@
     link :: (Linked ts a, Either e (Attribute t a)) -> Either e (Linked (t : ts) a)
     link (_, Left e) = Left e
     link (Linked{..}, Right attr) = Right $ Linked{linkAttribute = (attr, linkAttribute), ..}
+{-# INLINE probe #-}
 
--- | Set a trait attribute on linked value to produce another linked
--- value
+{- | Set a trait attribute on linked value to produce another linked
+ value
+-}
 plant :: forall t ts h a. Set h t a => t -> h (Linked ts a, Attribute t a) (Linked (t : ts) a)
 plant t = proc (l, attr) -> do
   setTrait t link -< (l, attr)
   where
     link :: Linked ts a -> a -> Attribute t a -> Linked (t : ts) a
     link Linked{..} a' attr = Linked{linkAttribute = (attr, linkAttribute), unlink = a'}
+{-# INLINE plant #-}
 
 {- | Constraint that proves that the trait @t@ is present in the list
  of traits @ts@.
@@ -143,10 +150,12 @@
 instance HasTrait t (t : ts) where
   from :: Linked (t : ts) a -> Tagged t (Attribute t a)
   from (Linked (lv, _) _) = Tagged lv
+  {-# INLINE from #-}
 
 instance {-# OVERLAPPABLE #-} HasTrait t ts => HasTrait t (t' : ts) where
   from :: Linked (t' : ts) a -> Tagged t (Attribute t a)
   from l = from $ linkminus l
+  {-# INLINE from #-}
 
 {- | Retrieve a trait.
 
@@ -157,6 +166,7 @@
 -}
 pick :: Tagged t a -> a
 pick = untag
+{-# INLINE pick #-}
 
 -- For better type errors
 instance TypeError (MissingTrait t) => HasTrait t '[] where
diff --git a/src/WebGear/Core/Trait/Auth/Basic.hs b/src/WebGear/Core/Trait/Auth/Basic.hs
--- a/src/WebGear/Core/Trait/Auth/Basic.hs
+++ b/src/WebGear/Core/Trait/Auth/Basic.hs
@@ -147,6 +147,7 @@
     case result of
       Left err -> errorHandler -< (request, err)
       Right val -> nextHandler -< val
+{-# INLINE basicAuthMiddleware #-}
 
 {- | Middleware to add basic authentication protection for a handler.
 
@@ -167,6 +168,7 @@
   h (Linked req Request, BasicAuthError e) Response ->
   Middleware h req (BasicAuth m e t : req)
 basicAuth = basicAuth'
+{-# INLINE basicAuth #-}
 
 {- | Similar to `basicAuth` but supports a custom authentication scheme.
 
@@ -183,6 +185,7 @@
   h (Linked req Request, BasicAuthError e) Response ->
   Middleware h req (BasicAuth' Required scheme m e t : req)
 basicAuth' = basicAuthMiddleware
+{-# INLINE basicAuth' #-}
 
 {- | Middleware to add optional basic authentication protection for a handler.
 
@@ -202,6 +205,7 @@
   BasicAuth' Optional "Basic" m e t ->
   Middleware h req (BasicAuth' Optional "Basic" m e t : req)
 optionalBasicAuth = optionalBasicAuth'
+{-# INLINE optionalBasicAuth #-}
 
 {- | Similar to `optionalBasicAuth` but supports a custom authentication
    scheme.
@@ -217,3 +221,4 @@
   BasicAuth' Optional scheme m e t ->
   Middleware h req (BasicAuth' Optional scheme m e t : req)
 optionalBasicAuth' cfg = basicAuthMiddleware cfg $ arr (absurd . snd)
+{-# INLINE optionalBasicAuth' #-}
diff --git a/src/WebGear/Core/Trait/Auth/Common.hs b/src/WebGear/Core/Trait/Auth/Common.hs
--- a/src/WebGear/Core/Trait/Auth/Common.hs
+++ b/src/WebGear/Core/Trait/Auth/Common.hs
@@ -46,6 +46,7 @@
 getAuthorizationHeaderTrait = proc request -> do
   result <- getTrait (Header :: Header Optional Lenient "Authorization" (AuthToken scheme)) -< request
   returnA -< either absurd id result
+{-# INLINE getAuthorizationHeaderTrait #-}
 
 -- | The protection space for authentication
 newtype Realm = Realm ByteString
@@ -62,6 +63,7 @@
 instance KnownSymbol scheme => FromHttpApiData (AuthToken scheme) where
   parseUrlPiece = parseHeader . encodeUtf8
 
+  {-# INLINE parseHeader #-}
   parseHeader hdr =
     case break (== ' ') hdr of
       (scm, tok) ->
@@ -98,3 +100,4 @@
     <<< setHeader @"WWW-Authenticate" (respondA HTTP.unauthorized401 "text/plain")
     -<
       (headerVal, "Unauthorized" :: Text)
+{-# INLINE respondUnauthorized #-}
diff --git a/src/WebGear/Core/Trait/Auth/JWT.hs b/src/WebGear/Core/Trait/Auth/JWT.hs
--- a/src/WebGear/Core/Trait/Auth/JWT.hs
+++ b/src/WebGear/Core/Trait/Auth/JWT.hs
@@ -152,6 +152,7 @@
   h (WebGear.Core.Trait.Linked req Request, JWTAuthError e) Response ->
   Middleware h req (JWTAuth m e t : req)
 jwtAuth = jwtAuth' @"Bearer"
+{-# INLINE jwtAuth #-}
 
 {- | Middleware to add optional JWT authentication protection for a
  handler. Expects the JWT to be available via a standard bearer
@@ -176,6 +177,7 @@
   JWTAuth' Optional "Bearer" m e t ->
   Middleware h req (JWTAuth' Optional "Bearer" m e t : req)
 optionalJWTAuth = optionalJWTAuth' @"Bearer"
+{-# INLINE optionalJWTAuth #-}
 
 jwtAuthMiddleware ::
   forall s e t x h m req.
@@ -191,6 +193,7 @@
     case result of
       Left err -> errorHandler -< (request, err)
       Right val -> nextHandler -< val
+{-# INLINE jwtAuthMiddleware #-}
 
 {- | Middleware to add JWT authentication protection for a
  handler. Expects the JWT to be available via an authorization header
@@ -217,6 +220,7 @@
   h (WebGear.Core.Trait.Linked req Request, JWTAuthError e) Response ->
   Middleware h req (JWTAuth' Required s m e t : req)
 jwtAuth' = jwtAuthMiddleware
+{-# INLINE jwtAuth' #-}
 
 {- | Middleware to add JWT authentication protection for a
  handler. Expects the JWT to be available via an authorization header
@@ -242,3 +246,4 @@
   JWTAuth' Optional s m e t ->
   Middleware h req (JWTAuth' Optional s m e t : req)
 optionalJWTAuth' cfg = jwtAuthMiddleware cfg $ arr (absurd . snd)
+{-# INLINE optionalJWTAuth' #-}
diff --git a/src/WebGear/Core/Trait/Body.hs b/src/WebGear/Core/Trait/Body.hs
--- a/src/WebGear/Core/Trait/Body.hs
+++ b/src/WebGear/Core/Trait/Body.hs
@@ -104,6 +104,7 @@
   case result of
     Left err -> errorHandler -< (request, err)
     Right t -> nextHandler -< t
+{-# INLINE requestBody #-}
 
 {- | Parse the request body as JSON and convert it to a value of type
    @t@.
@@ -128,6 +129,7 @@
   case result of
     Left err -> errorHandler -< (request, err)
     Right t -> nextHandler -< t
+{-# INLINE jsonRequestBody' #-}
 
 -- | Same as 'jsonRequestBody'' but with a media type @application/json@.
 jsonRequestBody ::
@@ -137,6 +139,7 @@
   h (Linked req Request, Text) Response ->
   Middleware h req (JSONBody t : req)
 jsonRequestBody = jsonRequestBody' (Just "application/json")
+{-# INLINE jsonRequestBody #-}
 
 {- | Set the response body along with a media type.
 
@@ -154,6 +157,7 @@
   r' <- plant (Body (Just mediaType)) -< (r, body)
   let mt = decodeUtf8 $ HTTP.renderHeader mediaType
   plant Header -< (r', mt)
+{-# INLINE setBody #-}
 
 -- | Set the response body without specifying any media type.
 setBodyWithoutContentType ::
@@ -164,6 +168,7 @@
 setBodyWithoutContentType prevHandler = proc (body, a) -> do
   r <- prevHandler -< a
   plant (Body Nothing) -< (r, body)
+{-# INLINE setBodyWithoutContentType #-}
 
 {- | Set the response body to a JSON value along with a media type.
 
@@ -181,6 +186,7 @@
   r' <- plant (JSONBody (Just mediaType)) -< (r, body)
   let mt = decodeUtf8 $ HTTP.renderHeader mediaType
   plant Header -< (r', mt)
+{-# INLINE setJSONBody' #-}
 
 {- | Set the response body to a JSON value.
 
@@ -192,6 +198,7 @@
   h a (Linked ts Response) ->
   h (body, a) (Linked (RequiredHeader "Content-Type" Text : JSONBody body : ts) Response)
 setJSONBody = setJSONBody' "application/json"
+{-# INLINE setJSONBody #-}
 
 {- | Set the response body to a JSON value without specifying any
  media type.
@@ -204,6 +211,7 @@
 setJSONBodyWithoutContentType prevHandler = proc (body, a) -> do
   r <- prevHandler -< a
   plant (JSONBody Nothing) -< (r, body)
+{-# INLINE setJSONBodyWithoutContentType #-}
 
 {- | A convenience arrow to generate a response specifying a status and body.
 
@@ -220,6 +228,7 @@
   h body (Linked [RequiredHeader "Content-Type" Text, Body body, Status] Response)
 respondA status mediaType = proc body ->
   setBody mediaType (mkResponse status) -< (body, ())
+{-# INLINE respondA #-}
 
 {- | A convenience arrow to generate a response specifying a status and
    JSON body.
@@ -233,6 +242,7 @@
   HTTP.Status ->
   h body (Linked [RequiredHeader "Content-Type" Text, JSONBody body, Status] Response)
 respondJsonA status = respondJsonA' status "application/json"
+{-# INLINE respondJsonA #-}
 
 {- | A convenience arrow to generate a response specifying a status and
    JSON body.
@@ -250,3 +260,4 @@
   h body (Linked [RequiredHeader "Content-Type" Text, JSONBody body, Status] Response)
 respondJsonA' status mediaType = proc body ->
   setJSONBody' mediaType (mkResponse status) -< (body, ())
+{-# INLINE respondJsonA' #-}
diff --git a/src/WebGear/Core/Trait/Header.hs b/src/WebGear/Core/Trait/Header.hs
--- a/src/WebGear/Core/Trait/Header.hs
+++ b/src/WebGear/Core/Trait/Header.hs
@@ -109,6 +109,7 @@
   case result of
     Left err -> errorHandler -< (request, err)
     Right val -> nextHandler -< val
+{-# INLINE headerHandler #-}
 
 {- | Extract a header value and convert it to a value of type @val@.
 
@@ -125,6 +126,7 @@
   h (Linked req Request, Either HeaderNotFound HeaderParseError) Response ->
   Middleware h req (Header Required Strict name val : req)
 header = headerHandler
+{-# INLINE header #-}
 
 {- | Extract an optional header value and convert it to a value of type
  @val@.
@@ -143,6 +145,7 @@
   h (Linked req Request, HeaderParseError) Response ->
   Middleware h req (Header Optional Strict name val : req)
 optionalHeader = headerHandler
+{-# INLINE optionalHeader #-}
 
 {- | Extract a header value and convert it to a value of type @val@.
 
@@ -161,6 +164,7 @@
   h (Linked req Request, HeaderNotFound) Response ->
   Middleware h req (Header Required Lenient name val : req)
 lenientHeader = headerHandler
+{-# INLINE lenientHeader #-}
 
 {- | Extract a header value and convert it to a value of type @val@.
 
@@ -177,6 +181,7 @@
   (Get h (Header Optional Lenient name val) Request, ArrowChoice h) =>
   Middleware h req (Header Optional Lenient name val : req)
 optionalLenientHeader = headerHandler $ arr (absurd . snd)
+{-# INLINE optionalLenientHeader #-}
 
 instance Trait (Header Required Strict name val) Response where
   type Attribute (Header Required Strict name val) Response = val
@@ -198,6 +203,7 @@
 setHeader prevHandler = proc (val, a) -> do
   r <- prevHandler -< a
   plant Header -< (r, val)
+{-# INLINE setHeader #-}
 
 {- | Set an optional header value in a response.
 
@@ -217,3 +223,4 @@
 setOptionalHeader prevHandler = proc (val, a) -> do
   r <- prevHandler -< a
   plant Header -< (r, val)
+{-# INLINE setOptionalHeader #-}
diff --git a/src/WebGear/Core/Trait/Method.hs b/src/WebGear/Core/Trait/Method.hs
--- a/src/WebGear/Core/Trait/Method.hs
+++ b/src/WebGear/Core/Trait/Method.hs
@@ -45,3 +45,4 @@
   HTTP.StdMethod ->
   Middleware h req (Method : req)
 method m nextHandler = probe (Method m) >>> routeMismatch ||| nextHandler
+{-# INLINE method #-}
diff --git a/src/WebGear/Core/Trait/Path.hs b/src/WebGear/Core/Trait/Path.hs
--- a/src/WebGear/Core/Trait/Path.hs
+++ b/src/WebGear/Core/Trait/Path.hs
@@ -85,6 +85,7 @@
   Text ->
   Middleware h req (Path : req)
 path s nextHandler = probe (Path s) >>> routeMismatch ||| nextHandler
+{-# INLINE path #-}
 
 {- | A middleware that captures a path variable from a single path
  component.
@@ -103,12 +104,14 @@
   (Get h (PathVar tag val) Request, ArrowChoice h, ArrowError RouteMismatch h) =>
   Middleware h req (PathVar tag val : req)
 pathVar nextHandler = probe PathVar >>> routeMismatch ||| nextHandler
+{-# INLINE pathVar #-}
 
 -- | A middleware that verifies that end of path is reached.
 pathEnd ::
   (Get h PathEnd Request, ArrowChoice h, ArrowError RouteMismatch h) =>
   Middleware h req (PathEnd : req)
 pathEnd nextHandler = probe PathEnd >>> routeMismatch ||| nextHandler
+{-# INLINE pathEnd #-}
 
 {- | Produces middleware(s) to match an optional HTTP method and some
  path components.
diff --git a/src/WebGear/Core/Trait/QueryParam.hs b/src/WebGear/Core/Trait/QueryParam.hs
--- a/src/WebGear/Core/Trait/QueryParam.hs
+++ b/src/WebGear/Core/Trait/QueryParam.hs
@@ -101,6 +101,7 @@
   case result of
     Left err -> errorHandler -< (request, err)
     Right val -> nextHandler -< val
+{-# INLINE queryParamHandler #-}
 
 {- | Extract a query parameter and convert it to a value of type
  @val@.
@@ -117,6 +118,7 @@
   h (Linked req Request, Either ParamNotFound ParamParseError) Response ->
   Middleware h req (QueryParam Required Strict name val : req)
 queryParam = queryParamHandler
+{-# INLINE queryParam #-}
 
 {- | Extract an optional query parameter and convert it to a value of
  type @val@.
@@ -134,6 +136,7 @@
   h (Linked req Request, ParamParseError) Response ->
   Middleware h req (QueryParam Optional Strict name val : req)
 optionalQueryParam = queryParamHandler
+{-# INLINE optionalQueryParam #-}
 
 {- | Extract a query parameter and convert it to a value of type @val@.
 
@@ -151,6 +154,7 @@
   h (Linked req Request, ParamNotFound) Response ->
   Middleware h req (QueryParam Required Lenient name val : req)
 lenientQueryParam = queryParamHandler
+{-# INLINE lenientQueryParam #-}
 
 {- | Extract a query parameter and convert it to a value of type @val@.
 
@@ -167,3 +171,4 @@
   (Get h (QueryParam Optional Lenient name val) Request, ArrowChoice h) =>
   Middleware h req (QueryParam Optional Lenient name val : req)
 optionalLenientQueryParam = queryParamHandler $ arr (absurd . snd)
+{-# INLINE optionalLenientQueryParam #-}
diff --git a/src/WebGear/Core/Trait/Status.hs b/src/WebGear/Core/Trait/Status.hs
--- a/src/WebGear/Core/Trait/Status.hs
+++ b/src/WebGear/Core/Trait/Status.hs
@@ -67,187 +67,234 @@
 mkResponse status = proc () -> do
   let response = linkzero $ Response status [] Nothing
   plant (Status status) -< (response, status)
+{-# INLINE mkResponse #-}
 
 -- | Continue 100 response
 continue100 :: Set h Status Response => h () (Linked '[Status] Response)
 continue100 = mkResponse HTTP.continue100
+{-# INLINE continue100 #-}
 
 -- | Switching Protocols 101 response
 switchingProtocols101 :: Set h Status Response => h () (Linked '[Status] Response)
 switchingProtocols101 = mkResponse HTTP.switchingProtocols101
+{-# INLINE switchingProtocols101 #-}
 
 -- | OK 200 response
 ok200 :: Set h Status Response => h () (Linked '[Status] Response)
 ok200 = mkResponse HTTP.ok200
+{-# INLINE ok200 #-}
 
 -- | Created 201 response
 created201 :: Set h Status Response => h () (Linked '[Status] Response)
 created201 = mkResponse HTTP.created201
+{-# INLINE created201 #-}
 
 -- | Accepted 202 response
 accepted202 :: Set h Status Response => h () (Linked '[Status] Response)
 accepted202 = mkResponse HTTP.accepted202
+{-# INLINE accepted202 #-}
 
 -- | Non-Authoritative 203 response
 nonAuthoritative203 :: Set h Status Response => h () (Linked '[Status] Response)
 nonAuthoritative203 = mkResponse HTTP.nonAuthoritative203
+{-# INLINE nonAuthoritative203 #-}
 
 -- | No Content 204 response
 noContent204 :: Set h Status Response => h () (Linked '[Status] Response)
 noContent204 = mkResponse HTTP.noContent204
+{-# INLINE noContent204 #-}
 
 -- | Reset Content 205 response
 resetContent205 :: Set h Status Response => h () (Linked '[Status] Response)
 resetContent205 = mkResponse HTTP.resetContent205
+{-# INLINE resetContent205 #-}
 
 -- | Partial Content 206 response
 partialContent206 :: Set h Status Response => h () (Linked '[Status] Response)
 partialContent206 = mkResponse HTTP.partialContent206
+{-# INLINE partialContent206 #-}
 
 -- | Multiple Choices 300 response
 multipleChoices300 :: Set h Status Response => h () (Linked '[Status] Response)
 multipleChoices300 = mkResponse HTTP.multipleChoices300
+{-# INLINE multipleChoices300 #-}
 
 -- | Moved Permanently 301 response
 movedPermanently301 :: Set h Status Response => h () (Linked '[Status] Response)
 movedPermanently301 = mkResponse HTTP.movedPermanently301
+{-# INLINE movedPermanently301 #-}
 
 -- | Found 302 response
 found302 :: Set h Status Response => h () (Linked '[Status] Response)
 found302 = mkResponse HTTP.found302
+{-# INLINE found302 #-}
 
 -- | See Other 303 response
 seeOther303 :: Set h Status Response => h () (Linked '[Status] Response)
 seeOther303 = mkResponse HTTP.seeOther303
+{-# INLINE seeOther303 #-}
 
 -- | Not Modified 304 response
 notModified304 :: Set h Status Response => h () (Linked '[Status] Response)
 notModified304 = mkResponse HTTP.notModified304
+{-# INLINE notModified304 #-}
 
 -- | Temporary Redirect 307 response
 temporaryRedirect307 :: Set h Status Response => h () (Linked '[Status] Response)
 temporaryRedirect307 = mkResponse HTTP.temporaryRedirect307
+{-# INLINE temporaryRedirect307 #-}
 
 -- | Permanent Redirect 308 response
 permanentRedirect308 :: Set h Status Response => h () (Linked '[Status] Response)
 permanentRedirect308 = mkResponse HTTP.permanentRedirect308
+{-# INLINE permanentRedirect308 #-}
 
 -- | Bad Request 400 response
 badRequest400 :: Set h Status Response => h () (Linked '[Status] Response)
 badRequest400 = mkResponse HTTP.badRequest400
+{-# INLINE badRequest400 #-}
 
 -- | Unauthorized 401 response
 unauthorized401 :: Set h Status Response => h () (Linked '[Status] Response)
 unauthorized401 = mkResponse HTTP.unauthorized401
+{-# INLINE unauthorized401 #-}
 
 -- | Payment Required 402 response
 paymentRequired402 :: Set h Status Response => h () (Linked '[Status] Response)
 paymentRequired402 = mkResponse HTTP.paymentRequired402
+{-# INLINE paymentRequired402 #-}
 
 -- | Forbidden 403 response
 forbidden403 :: Set h Status Response => h () (Linked '[Status] Response)
 forbidden403 = mkResponse HTTP.forbidden403
+{-# INLINE forbidden403 #-}
 
 -- | Not Found 404 response
 notFound404 :: Set h Status Response => h () (Linked '[Status] Response)
 notFound404 = mkResponse HTTP.notFound404
+{-# INLINE notFound404 #-}
 
 -- | Method Not Allowed 405 response
 methodNotAllowed405 :: Set h Status Response => h () (Linked '[Status] Response)
 methodNotAllowed405 = mkResponse HTTP.methodNotAllowed405
+{-# INLINE methodNotAllowed405 #-}
 
 -- | Not Acceptable 406 response
 notAcceptable406 :: Set h Status Response => h () (Linked '[Status] Response)
 notAcceptable406 = mkResponse HTTP.notAcceptable406
+{-# INLINE notAcceptable406 #-}
 
 -- | Proxy Authentication Required 407 response
 proxyAuthenticationRequired407 :: Set h Status Response => h () (Linked '[Status] Response)
 proxyAuthenticationRequired407 = mkResponse HTTP.proxyAuthenticationRequired407
+{-# INLINE proxyAuthenticationRequired407 #-}
 
 -- | Request Timeout 408 response
 requestTimeout408 :: Set h Status Response => h () (Linked '[Status] Response)
 requestTimeout408 = mkResponse HTTP.requestTimeout408
+{-# INLINE requestTimeout408 #-}
 
 -- | Conflict 409 response
 conflict409 :: Set h Status Response => h () (Linked '[Status] Response)
 conflict409 = mkResponse HTTP.conflict409
+{-# INLINE conflict409 #-}
 
 -- | Gone 410 response
 gone410 :: Set h Status Response => h () (Linked '[Status] Response)
 gone410 = mkResponse HTTP.gone410
+{-# INLINE gone410 #-}
 
 -- | Length Required 411 response
 lengthRequired411 :: Set h Status Response => h () (Linked '[Status] Response)
 lengthRequired411 = mkResponse HTTP.lengthRequired411
+{-# INLINE lengthRequired411 #-}
 
 -- | Precondition Failed 412 response
 preconditionFailed412 :: Set h Status Response => h () (Linked '[Status] Response)
 preconditionFailed412 = mkResponse HTTP.preconditionFailed412
+{-# INLINE preconditionFailed412 #-}
 
 -- | Request Entity Too Large 413 response
 requestEntityTooLarge413 :: Set h Status Response => h () (Linked '[Status] Response)
 requestEntityTooLarge413 = mkResponse HTTP.requestEntityTooLarge413
+{-# INLINE requestEntityTooLarge413 #-}
 
 -- | Request URI Too Long 414 response
 requestURITooLong414 :: Set h Status Response => h () (Linked '[Status] Response)
 requestURITooLong414 = mkResponse HTTP.requestURITooLong414
+{-# INLINE requestURITooLong414 #-}
 
 -- | Unsupported Media Type 415 response
 unsupportedMediaType415 :: Set h Status Response => h () (Linked '[Status] Response)
 unsupportedMediaType415 = mkResponse HTTP.unsupportedMediaType415
+{-# INLINE unsupportedMediaType415 #-}
 
 -- | Requested Range Not Satisfiable 416 response
 requestedRangeNotSatisfiable416 :: Set h Status Response => h () (Linked '[Status] Response)
 requestedRangeNotSatisfiable416 = mkResponse HTTP.requestedRangeNotSatisfiable416
+{-# INLINE requestedRangeNotSatisfiable416 #-}
 
 -- | Expectation Failed 417 response
 expectationFailed417 :: Set h Status Response => h () (Linked '[Status] Response)
 expectationFailed417 = mkResponse HTTP.expectationFailed417
+{-# INLINE expectationFailed417 #-}
 
 -- | I'm A Teapot 418 response
 imATeapot418 :: Set h Status Response => h () (Linked '[Status] Response)
 imATeapot418 = mkResponse HTTP.imATeapot418
+{-# INLINE imATeapot418 #-}
 
 -- | Unprocessable Entity 422 response
 unprocessableEntity422 :: Set h Status Response => h () (Linked '[Status] Response)
 unprocessableEntity422 = mkResponse HTTP.unprocessableEntity422
+{-# INLINE unprocessableEntity422 #-}
 
 -- | Precondition Required 428 response
 preconditionRequired428 :: Set h Status Response => h () (Linked '[Status] Response)
 preconditionRequired428 = mkResponse HTTP.preconditionRequired428
+{-# INLINE preconditionRequired428 #-}
 
 -- | Too Many Requests 429 response
 tooManyRequests429 :: Set h Status Response => h () (Linked '[Status] Response)
 tooManyRequests429 = mkResponse HTTP.tooManyRequests429
+{-# INLINE tooManyRequests429 #-}
 
 -- | Request Header Fields Too Large 431 response
 requestHeaderFieldsTooLarge431 :: Set h Status Response => h () (Linked '[Status] Response)
 requestHeaderFieldsTooLarge431 = mkResponse HTTP.requestHeaderFieldsTooLarge431
+{-# INLINE requestHeaderFieldsTooLarge431 #-}
 
 -- | Internal Server Error 500 response
 internalServerError500 :: Set h Status Response => h () (Linked '[Status] Response)
 internalServerError500 = mkResponse HTTP.internalServerError500
+{-# INLINE internalServerError500 #-}
 
 -- | Not Implemented 501 response
 notImplemented501 :: Set h Status Response => h () (Linked '[Status] Response)
 notImplemented501 = mkResponse HTTP.notImplemented501
+{-# INLINE notImplemented501 #-}
 
 -- | Bad Gateway 502 response
 badGateway502 :: Set h Status Response => h () (Linked '[Status] Response)
 badGateway502 = mkResponse HTTP.badGateway502
+{-# INLINE badGateway502 #-}
 
 -- | Service Unavailable 503 response
 serviceUnavailable503 :: Set h Status Response => h () (Linked '[Status] Response)
 serviceUnavailable503 = mkResponse HTTP.serviceUnavailable503
+{-# INLINE serviceUnavailable503 #-}
 
 -- | Gateway Timeout 504 response
 gatewayTimeout504 :: Set h Status Response => h () (Linked '[Status] Response)
 gatewayTimeout504 = mkResponse HTTP.gatewayTimeout504
+{-# INLINE gatewayTimeout504 #-}
 
 -- | HTTP Version Not Supported 505 response
 httpVersionNotSupported505 :: Set h Status Response => h () (Linked '[Status] Response)
 httpVersionNotSupported505 = mkResponse HTTP.httpVersionNotSupported505
+{-# INLINE httpVersionNotSupported505 #-}
 
 -- | Network Authentication Required 511 response
 networkAuthenticationRequired511 :: Set h Status Response => h () (Linked '[Status] Response)
 networkAuthenticationRequired511 = mkResponse HTTP.networkAuthenticationRequired511
+{-# INLINE networkAuthenticationRequired511 #-}
diff --git a/webgear-core.cabal b/webgear-core.cabal
--- a/webgear-core.cabal
+++ b/webgear-core.cabal
@@ -1,7 +1,7 @@
 cabal-version:       2.4
 
 name:                webgear-core
-version:             1.0.4
+version:             1.0.5
 synopsis:            Composable, type-safe library to build HTTP APIs
 description:
         WebGear is a library to for building composable, type-safe HTTP APIs.
@@ -53,7 +53,7 @@
                       TypeApplications
                       TypeFamilies
                       TypeOperators
-  build-depends:      base >=4.13.0.0 && <4.18
+  build-depends:      base >=4.13.0.0 && <4.19
                     , bytestring >=0.10.10.1 && <0.12
                     , case-insensitive ==1.2.*
                     , filepath ==1.4.*
@@ -63,7 +63,7 @@
                     , network ==3.1.*
                     , safe-exceptions ==0.1.*
                     , tagged ==0.8.*
-                    , template-haskell >=2.15.0.0 && <2.20
+                    , template-haskell >=2.15.0.0 && <2.21
                     , text >=1.2.0.0 && <2.1
                     , unordered-containers ==0.2.*
                     , wai ==3.2.*
@@ -104,5 +104,5 @@
                     , WebGear.Core.Handler.Static
   hs-source-dirs:     src
   build-depends:      arrows ==0.4.*
-                    , jose >=0.8.3.1 && <0.10
+                    , jose >=0.8.3.1 && <0.11
                     , mime-types ==0.1.*
