diff --git a/morpheus-graphql-server.cabal b/morpheus-graphql-server.cabal
--- a/morpheus-graphql-server.cabal
+++ b/morpheus-graphql-server.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.36.0.
+-- This file has been generated from package.yaml by hpack version 0.38.1.
 --
 -- see: https://github.com/sol/hpack
 
 name:           morpheus-graphql-server
-version:        0.28.1
+version:        0.28.2
 synopsis:       Morpheus GraphQL
 description:    Build GraphQL APIs with your favourite functional language!
 category:       web, graphql
@@ -358,17 +358,17 @@
   build-depends:
       aeson >=1.4.4 && <3.0.0
     , base >=4.7.0 && <5.0.0
-    , bytestring >=0.10.4 && <0.15.0
-    , containers >=0.4.2.1 && <=0.7
+    , bytestring >=0.10.4 && <1.0.0
+    , containers >=0.4.2.1 && <1.0.0
     , morpheus-graphql-app >=0.28.0 && <0.29.0
     , morpheus-graphql-core >=0.28.0 && <0.29.0
     , mtl >=2.0.0 && <3.0.0
     , relude >=0.3.0 && <2.0.0
     , template-haskell >=2.0.0 && <3.0.0
     , text >=1.2.3 && <3.0.0
-    , transformers >=0.3.0 && <0.7.0
-    , unordered-containers >=0.2.8 && <0.3.0
-    , vector >=0.12.0.1 && <0.15.0
+    , transformers >=0.3.0 && <1.0.0
+    , unordered-containers >=0.2.8 && <1.0.0
+    , vector >=0.12.0.1 && <1.0.0
   default-language: Haskell2010
 
 test-suite morpheus-graphql-server-test
@@ -412,8 +412,8 @@
   build-depends:
       aeson >=1.4.4 && <3.0.0
     , base >=4.7.0 && <5.0.0
-    , bytestring >=0.10.4 && <0.15.0
-    , containers >=0.4.2.1 && <=0.7
+    , bytestring >=0.10.4 && <1.0.0
+    , containers >=0.4.2.1 && <1.0.0
     , file-embed >=0.0.10 && <1.0.0
     , morpheus-graphql-app >=0.28.0 && <0.29.0
     , morpheus-graphql-core >=0.28.0 && <0.29.0
@@ -422,11 +422,11 @@
     , morpheus-graphql-tests >=0.28.0 && <0.29.0
     , mtl >=2.0.0 && <3.0.0
     , relude >=0.3.0 && <2.0.0
-    , tasty >=0.1.0 && <=1.5
+    , tasty >=0.1.0 && <2.0.0
     , tasty-hunit >=0.1.0 && <1.0.0
     , template-haskell >=2.0.0 && <3.0.0
     , text >=1.2.3 && <3.0.0
-    , transformers >=0.3.0 && <0.7.0
-    , unordered-containers >=0.2.8 && <0.3.0
-    , vector >=0.12.0.1 && <0.15.0
+    , transformers >=0.3.0 && <1.0.0
+    , unordered-containers >=0.2.8 && <1.0.0
+    , vector >=0.12.0.1 && <1.0.0
   default-language: Haskell2010
diff --git a/src/Data/Morpheus/Server/Deriving/App.hs b/src/Data/Morpheus/Server/Deriving/App.hs
--- a/src/Data/Morpheus/Server/Deriving/App.hs
+++ b/src/Data/Morpheus/Server/Deriving/App.hs
@@ -62,10 +62,10 @@
   where
   deriveApp :: f m event qu mu su -> App event m
 
-instance RootResolverConstraint m e query mut sub => DeriveApp RootResolver m e query mut sub where
+instance (RootResolverConstraint m e query mut sub) => DeriveApp RootResolver m e query mut sub where
   deriveApp root =
     resultOr FailApp (uncurry mkApp) $ (,) <$> deriveSchema (Identity root) <*> deriveResolvers root
 
-instance NamedResolversConstraint m e query mut sub => DeriveApp NamedResolvers m e query mut sub where
+instance (NamedResolversConstraint m e query mut sub) => DeriveApp NamedResolvers m e query mut sub where
   deriveApp root =
     resultOr FailApp (uncurry mkApp) $ (,deriveNamedResolvers root) <$> deriveSchema (Identity root)
diff --git a/src/Data/Morpheus/Server/Deriving/Internal/Type.hs b/src/Data/Morpheus/Server/Deriving/Internal/Type.hs
--- a/src/Data/Morpheus/Server/Deriving/Internal/Type.hs
+++ b/src/Data/Morpheus/Server/Deriving/Internal/Type.hs
@@ -210,8 +210,8 @@
   GQLResult (TypeDefinition cat CONST)
 toTypeDefinition ctx proxy content = do
   dirs <- serializeDirectives ctx (getTypeDirectives ctx proxy)
-  pure $
-    TypeDefinition
+  pure
+    $ TypeDefinition
       (visitTypeDescription ctx proxy Nothing)
       (useTypename ctx proxy)
       dirs
diff --git a/src/Data/Morpheus/Server/Deriving/Internal/Value.hs b/src/Data/Morpheus/Server/Deriving/Internal/Value.hs
--- a/src/Data/Morpheus/Server/Deriving/Internal/Value.hs
+++ b/src/Data/Morpheus/Server/Deriving/Internal/Value.hs
@@ -69,11 +69,11 @@
   | name `elem` left = L1 <$> decodeRep drv value
   | name `elem` right = R1 <$> decodeRep drv value
   | otherwise =
-      throwError $
-        internal $
-          "Constructor \""
-            <> msg name
-            <> "\" could not find in Union"
+      throwError
+        $ internal
+        $ "Constructor \""
+        <> msg name
+        <> "\" could not find in Union"
 
 class DecodeRep ctx (f :: Type -> Type) where
   decodeRep :: ctx -> ValidValue -> DecoderT (f a)
diff --git a/src/Data/Morpheus/Server/Deriving/Kinded/Channels.hs b/src/Data/Morpheus/Server/Deriving/Kinded/Channels.hs
--- a/src/Data/Morpheus/Server/Deriving/Kinded/Channels.hs
+++ b/src/Data/Morpheus/Server/Deriving/Kinded/Channels.hs
@@ -110,7 +110,8 @@
 instance (MonadResolver m, MonadOperation m ~ SUBSCRIPTION, MonadEvent m ~ e, val arg) => GetChannel val e (arg -> SubscriptionField (m a)) where
   getChannel drv f sel@Selection {selectionArguments} =
     useDecodeArguments drv selectionArguments
-      >>= flip (getChannel drv) sel . f
+      >>= flip (getChannel drv) sel
+      . f
 
 ------------------------------------------------------
 
diff --git a/src/Data/Morpheus/Server/Deriving/Kinded/NamedResolverFun.hs b/src/Data/Morpheus/Server/Deriving/Kinded/NamedResolverFun.hs
--- a/src/Data/Morpheus/Server/Deriving/Kinded/NamedResolverFun.hs
+++ b/src/Data/Morpheus/Server/Deriving/Kinded/NamedResolverFun.hs
@@ -128,8 +128,10 @@
 instance (UseNamedResolver namedRes res gql val ~ ctx, Monad m, val a, MonadResolver m, res m b) => KindedNamedFunValue ctx CUSTOM m (a -> b) where
   kindedNamedFunValue ctx (Kinded f) =
     getArguments
-      >>= liftState . useDecodeArguments (namedDrv ctx)
-      >>= useNamedFieldResolver ctx . f
+      >>= liftState
+      . useDecodeArguments (namedDrv ctx)
+      >>= useNamedFieldResolver ctx
+      . f
 
 getOptions :: UseNamedResolver namedRes res gql val -> GRepFun gql (res m) Identity (m (ResolverValue m))
 getOptions ctx =
diff --git a/src/Data/Morpheus/Server/Deriving/Kinded/Resolver.hs b/src/Data/Morpheus/Server/Deriving/Kinded/Resolver.hs
--- a/src/Data/Morpheus/Server/Deriving/Kinded/Resolver.hs
+++ b/src/Data/Morpheus/Server/Deriving/Kinded/Resolver.hs
@@ -75,8 +75,11 @@
 instance (UseResolver res gql val ~ ctx, Generic a, res m b, val a) => KindedResolver ctx CUSTOM m (a -> b) where
   kindedResolver res (Kinded f) =
     getArguments
-      >>= liftState . useDecodeValue res . argumentsToObject
-      >>= useEncodeResolver res . f
+      >>= liftState
+      . useDecodeValue res
+      . argumentsToObject
+      >>= useEncodeResolver res
+      . f
 
 instance (UseResolver res gql val ~ ctx, res m a) => KindedResolver ctx CUSTOM m (m a) where
   kindedResolver res (Kinded value) = value >>= useEncodeResolver res
diff --git a/src/Data/Morpheus/Server/Deriving/Schema.hs b/src/Data/Morpheus/Server/Deriving/Schema.hs
--- a/src/Data/Morpheus/Server/Deriving/Schema.hs
+++ b/src/Data/Morpheus/Server/Deriving/Schema.hs
@@ -123,15 +123,15 @@
 
 failureRequirePrefix :: TypeName -> GQLResult b
 failureRequirePrefix typename =
-  throwError $
-    "It appears that the Haskell type "
-      <> msg typename
-      <> " was used as both input and output type, which is not allowed by GraphQL specifications."
-      <> "\n\n "
-      <> "If you use \"InputTypeNamespace\" directive, "
-      <> "you can override the default type names for "
-      <> msg typename
-      <> " to solve this problem."
+  throwError
+    $ "It appears that the Haskell type "
+    <> msg typename
+    <> " was used as both input and output type, which is not allowed by GraphQL specifications."
+    <> "\n\n "
+    <> "If you use \"InputTypeNamespace\" directive, "
+    <> "you can override the default type names for "
+    <> msg typename
+    <> " to solve this problem."
 
 withSameCategory :: TypeFingerprint -> TypeFingerprint
 withSameCategory (TypeableFingerprint _ xs) = TypeableFingerprint OUT xs
diff --git a/src/Data/Morpheus/Server/Deriving/Utils/Types.hs b/src/Data/Morpheus/Server/Deriving/Utils/Types.hs
--- a/src/Data/Morpheus/Server/Deriving/Utils/Types.hs
+++ b/src/Data/Morpheus/Server/Deriving/Utils/Types.hs
@@ -101,11 +101,11 @@
 -- if value is already validated but value has different type
 typeMismatch :: GQLError -> Value s -> GQLError
 typeMismatch text jsType =
-  internal $
-    "Type mismatch! expected:"
-      <> text
-      <> ", got: "
-      <> msg jsType
+  internal
+    $ "Type mismatch! expected:"
+    <> text
+    <> ", got: "
+    <> msg jsType
 
 coerceInputObject :: (MonadError GQLError m) => ValidValue -> m ValidObject
 coerceInputObject (Object object) = pure object
diff --git a/src/Data/Morpheus/Server/Resolvers.hs b/src/Data/Morpheus/Server/Resolvers.hs
--- a/src/Data/Morpheus/Server/Resolvers.hs
+++ b/src/Data/Morpheus/Server/Resolvers.hs
@@ -68,7 +68,8 @@
     event
     (query :: (Type -> Type) -> Type)
     (mutation :: (Type -> Type) -> Type)
-    (subscription :: (Type -> Type) -> Type) = RootResolver
+    (subscription :: (Type -> Type) -> Type)
+  = RootResolver
   { queryResolver :: query (Resolver QUERY event m),
     mutationResolver :: mutation (Resolver MUTATION event m),
     subscriptionResolver :: subscription (Resolver SUBSCRIPTION event m)
diff --git a/src/Data/Morpheus/Server/Types/Directives.hs b/src/Data/Morpheus/Server/Types/Directives.hs
--- a/src/Data/Morpheus/Server/Types/Directives.hs
+++ b/src/Data/Morpheus/Server/Types/Directives.hs
@@ -110,7 +110,7 @@
 instance ToLocations '[] where
   toLocations _ = []
 
-getLocations :: forall f a. ToLocations (DIRECTIVE_LOCATIONS a) => f a -> [DirectiveLocation]
+getLocations :: forall f a. (ToLocations (DIRECTIVE_LOCATIONS a)) => f a -> [DirectiveLocation]
 getLocations _ = toLocations (Proxy :: Proxy (DIRECTIVE_LOCATIONS a))
 
 type ALLOWED (a :: Type) (l :: [DirectiveLocation]) = OVERLAPS l (DIRECTIVE_LOCATIONS a)
@@ -140,16 +140,16 @@
 
 -- TYPE VISITORS
 
-visitTypeName' :: forall a. GQLDirective a => a -> Bool -> TypeName -> TypeName
+visitTypeName' :: forall a. (GQLDirective a) => a -> Bool -> TypeName -> TypeName
 visitTypeName' = __visitTypeName (Proxy :: Proxy (ALLOWED a TYPE_VISITOR_KIND))
 
-visitTypeDescription' :: forall a. GQLDirective a => a -> Maybe Description -> Maybe Description
+visitTypeDescription' :: forall a. (GQLDirective a) => a -> Maybe Description -> Maybe Description
 visitTypeDescription' = __visitTypeDescription (Proxy :: Proxy (ALLOWED a TYPE_VISITOR_KIND))
 
-visitFieldNames' :: forall a. GQLDirective a => a -> FieldName -> FieldName
+visitFieldNames' :: forall a. (GQLDirective a) => a -> FieldName -> FieldName
 visitFieldNames' = __visitFieldNames (Proxy :: Proxy (ALLOWED a TYPE_VISITOR_KIND))
 
-visitEnumNames' :: forall a. GQLDirective a => a -> TypeName -> TypeName
+visitEnumNames' :: forall a. (GQLDirective a) => a -> TypeName -> TypeName
 visitEnumNames' = __visitEnumNames (Proxy :: Proxy (ALLOWED a TYPE_VISITOR_KIND))
 
 class VISIT_TYPE a (t :: Bool) where
@@ -164,7 +164,7 @@
   __visitFieldNames _ _ = id
   __visitEnumNames _ _ = id
 
-instance Visitors.VisitType a => VISIT_TYPE a TRUE where
+instance (Visitors.VisitType a) => VISIT_TYPE a TRUE where
   __visitTypeName _ x isInput name = packName $ Visitors.visitTypeName x isInput (unpackName name)
   __visitTypeDescription _ = Visitors.visitTypeDescription
   __visitFieldNames _ x = packName . Visitors.visitFieldNames x . unpackName
@@ -172,13 +172,13 @@
 
 -- FIELD VISITORS
 
-visitFieldName' :: forall a. GQLDirective a => a -> FieldName -> FieldName
+visitFieldName' :: forall a. (GQLDirective a) => a -> FieldName -> FieldName
 visitFieldName' = __visitFieldName (Proxy :: Proxy (ALLOWED a FIELD_VISITOR_KIND))
 
-visitFieldDescription' :: forall a. GQLDirective a => a -> Maybe Description -> Maybe Description
+visitFieldDescription' :: forall a. (GQLDirective a) => a -> Maybe Description -> Maybe Description
 visitFieldDescription' = __visitFieldDescription (Proxy :: Proxy (ALLOWED a FIELD_VISITOR_KIND))
 
-visitFieldDefaultValue' :: forall a. GQLDirective a => a -> Maybe (Value CONST) -> Maybe (Value CONST)
+visitFieldDefaultValue' :: forall a. (GQLDirective a) => a -> Maybe (Value CONST) -> Maybe (Value CONST)
 visitFieldDefaultValue' = __visitFieldDefaultValue (Proxy :: Proxy (ALLOWED a FIELD_VISITOR_KIND))
 
 class VISIT_FIELD a (t :: Bool) where
@@ -191,17 +191,17 @@
   __visitFieldDescription _ _ = id
   __visitFieldDefaultValue _ _ = id
 
-instance Visitors.VisitField a => VISIT_FIELD a TRUE where
+instance (Visitors.VisitField a) => VISIT_FIELD a TRUE where
   __visitFieldName _ x name = packName $ Visitors.visitFieldName x (unpackName name)
   __visitFieldDescription _ = Visitors.visitFieldDescription
   __visitFieldDefaultValue _ = Visitors.visitFieldDefaultValue
 
 -- VISIT_ENUM
 
-visitEnumName' :: forall a. GQLDirective a => a -> TypeName -> TypeName
+visitEnumName' :: forall a. (GQLDirective a) => a -> TypeName -> TypeName
 visitEnumName' = __visitEnumName (Proxy :: Proxy (ALLOWED a ENUM_VISITOR_KIND))
 
-visitEnumDescription' :: forall a. GQLDirective a => a -> Maybe Description -> Maybe Description
+visitEnumDescription' :: forall a. (GQLDirective a) => a -> Maybe Description -> Maybe Description
 visitEnumDescription' = __visitEnumDescription (Proxy :: Proxy (ALLOWED a ENUM_VISITOR_KIND))
 
 class VISIT_ENUM a (t :: Bool) where
@@ -212,7 +212,7 @@
   __visitEnumName _ _ = id
   __visitEnumDescription _ _ = id
 
-instance Visitors.VisitEnum a => VISIT_ENUM a TRUE where
+instance (Visitors.VisitEnum a) => VISIT_ENUM a TRUE where
   __visitEnumName _ x name = packName $ Visitors.visitEnumName x (unpackName name)
   __visitEnumDescription _ = Visitors.visitEnumDescription
 
diff --git a/test/Feature/Collision/CategoryCollisionFail.hs b/test/Feature/Collision/CategoryCollisionFail.hs
--- a/test/Feature/Collision/CategoryCollisionFail.hs
+++ b/test/Feature/Collision/CategoryCollisionFail.hs
@@ -47,8 +47,8 @@
     { queryResolver =
         Query
           { deity =
-              const $
-                pure
+              const
+                $ pure
                   Deity
                     { name =
                         "Morpheus",
diff --git a/test/Feature/Collision/CategoryCollisionSuccess.hs b/test/Feature/Collision/CategoryCollisionSuccess.hs
--- a/test/Feature/Collision/CategoryCollisionSuccess.hs
+++ b/test/Feature/Collision/CategoryCollisionSuccess.hs
@@ -59,8 +59,8 @@
     { queryResolver =
         Query
           { deity =
-              const $
-                pure
+              const
+                $ pure
                   Deity
                     { name =
                         "Morpheus",
diff --git a/test/Feature/Input/Collections.hs b/test/Feature/Input/Collections.hs
--- a/test/Feature/Input/Collections.hs
+++ b/test/Feature/Input/Collections.hs
@@ -31,7 +31,7 @@
 import GHC.Generics (Generic)
 
 -- query
-testRes :: Applicative m => Arg "value" a -> m a
+testRes :: (Applicative m) => Arg "value" a -> m a
 testRes = pure . argValue
 
 type Coll m a = Arg "value" a -> m a
diff --git a/test/Feature/Input/Enums.hs b/test/Feature/Input/Enums.hs
--- a/test/Feature/Input/Enums.hs
+++ b/test/Feature/Input/Enums.hs
@@ -47,7 +47,7 @@
   deriving (Generic, Show, GQLType)
 
 -- query
-testRes :: Applicative m => TestArgs a -> m a
+testRes :: (Applicative m) => TestArgs a -> m a
 testRes TestArgs {level} = pure level
 
 -- resolver
diff --git a/test/Feature/Input/Objects.hs b/test/Feature/Input/Objects.hs
--- a/test/Feature/Input/Objects.hs
+++ b/test/Feature/Input/Objects.hs
@@ -37,7 +37,7 @@
   deriving (Generic, Show, GQLType)
 
 -- query
-testRes :: Show a => Applicative m => Arg a -> m Text
+testRes :: (Show a) => (Applicative m) => Arg a -> m Text
 testRes Arg {value} = pure $ pack $ show value
 
 -- resolver
diff --git a/test/Feature/Input/Scalars.hs b/test/Feature/Input/Scalars.hs
--- a/test/Feature/Input/Scalars.hs
+++ b/test/Feature/Input/Scalars.hs
@@ -27,7 +27,7 @@
   deriving (Generic, Show, GQLType)
 
 -- query
-testRes :: Applicative m => Arg a -> m a
+testRes :: (Applicative m) => Arg a -> m a
 testRes Arg {value} = pure value
 
 -- resolver
diff --git a/test/Feature/NamedResolvers/DB.hs b/test/Feature/NamedResolvers/DB.hs
--- a/test/Feature/NamedResolvers/DB.hs
+++ b/test/Feature/NamedResolvers/DB.hs
@@ -40,7 +40,7 @@
 getPlace "morpheus" = pure "dreams"
 getPlace x = pure x
 
-getDocsById :: Monad m => ID -> m (Maybe Text)
+getDocsById :: (Monad m) => ID -> m (Maybe Text)
 getDocsById "morpheus" = pure $ Just "the god of dreams"
 getDocsById "zeus" = pure $ Just "the king of the gods"
 getDocsById "olympus" = pure $ Just "Mountain"
diff --git a/test/Feature/NamedResolvers/DeitiesApp.hs b/test/Feature/NamedResolvers/DeitiesApp.hs
--- a/test/Feature/NamedResolvers/DeitiesApp.hs
+++ b/test/Feature/NamedResolvers/DeitiesApp.hs
@@ -36,11 +36,11 @@
 getPower "tb" = pure (Just Thunderbolt)
 getPower _ = pure Nothing
 
-getDeity :: Monad m => ID -> m (Maybe (Deity (NamedResolverT m)))
+getDeity :: (Monad m) => ID -> m (Maybe (Deity (NamedResolverT m)))
 getDeity uid
   | uid `elem` allDeities =
-      pure $
-        Just
+      pure
+        $ Just
           Deity
             { name = resolve (getDeityName uid),
               power = resolve (getPowers uid),
@@ -59,13 +59,13 @@
 instance ResolveNamed m (Query (NamedResolverT m)) where
   type Dep (Query (NamedResolverT m)) = ()
   resolveBatched =
-    ignoreBatching $
-      const $
-        pure
-          Query
-            { deity = \(Arg uid) -> resolve (pure uid),
-              deities = resolve (pure allDeities)
-            }
+    ignoreBatching
+      $ const
+      $ pure
+        Query
+          { deity = \(Arg uid) -> resolve (pure uid),
+            deities = resolve (pure allDeities)
+          }
 
 deitiesApp :: App () IO
 deitiesApp = deriveApp (NamedResolvers :: NamedResolvers IO () Query Undefined Undefined)
diff --git a/test/Feature/NamedResolvers/EntitiesApp.hs b/test/Feature/NamedResolvers/EntitiesApp.hs
--- a/test/Feature/NamedResolvers/EntitiesApp.hs
+++ b/test/Feature/NamedResolvers/EntitiesApp.hs
@@ -46,13 +46,13 @@
 instance ResolveNamed m (Query (NamedResolverT m)) where
   type Dep (Query (NamedResolverT m)) = ()
   resolveBatched =
-    ignoreBatching $
-      const $
-        pure
-          Query
-            { entities = resolve (pure allEntities),
-              entity = \(Arg uid) -> resolve (pure uid)
-            }
+    ignoreBatching
+      $ const
+      $ pure
+        Query
+          { entities = resolve (pure allEntities),
+            entity = \(Arg uid) -> resolve (pure uid)
+          }
 
 entitiesApp :: App () IO
 entitiesApp = deriveApp (NamedResolvers :: NamedResolvers IO () Query Undefined Undefined)
diff --git a/test/Feature/NamedResolvers/RealmsApp.hs b/test/Feature/NamedResolvers/RealmsApp.hs
--- a/test/Feature/NamedResolvers/RealmsApp.hs
+++ b/test/Feature/NamedResolvers/RealmsApp.hs
@@ -41,8 +41,8 @@
 getRealm :: (Monad m) => ID -> m (Maybe (Realm (NamedResolverT m)))
 getRealm uid
   | uid `elem` allRealms =
-      pure $
-        Just
+      pure
+        $ Just
           Realm
             { name = resolve (getRealmName uid),
               owner = resolve (getOwner uid),
@@ -67,13 +67,13 @@
 instance ResolveNamed m (Query (NamedResolverT m)) where
   type Dep (Query (NamedResolverT m)) = ()
   resolveBatched =
-    ignoreBatching $
-      const $
-        pure
-          Query
-            { realm = \(Arg arg) -> resolve (pure arg),
-              realms = resolve (pure allRealms)
-            }
+    ignoreBatching
+      $ const
+      $ pure
+        Query
+          { realm = \(Arg arg) -> resolve (pure arg),
+            realms = resolve (pure allRealms)
+          }
 
 realmsApp :: App () IO
 realmsApp =
