haskell-servant / servant

Main repository for the servant libraries — DSL for describing, serving, querying, mocking, documenting web applications and more!
https://docs.servant.dev/
1.8k stars 407 forks source link

Build without warnings? #1681

Open philderbeast opened 1 year ago

philderbeast commented 1 year ago

I cloned this repo and did a cabal build all --enable-tests --enable-benchmarks and saw lots of warnings. Some warning had previously been fixed #313. Can we build without warnings? Are pull requests that fix warnings welcome?

philderbeast commented 1 year ago
$ cabal build all --enable-tests --enable-benchmarks
Resolving dependencies...
Build profile: -w ghc-9.4.5 -O0
...
src/Servant/API/Alternative.hs:10:1: warning: [-Wunused-imports]
    The import of ‘Control.Applicative’ is redundant
      except perhaps to import instances from ‘Control.Applicative’
    To import instances alone, use: import Control.Applicative()
   |
10 | import           Control.Applicative (liftA2)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/API/Alternative.hs:41:5: warning: [-Wnoncanonical-monoid-instances]
    Noncanonical ‘mappend’ definition detected
    in the instance declaration for ‘Monoid (a :<|> b)’.
    ‘mappend’ will eventually be removed in favour of ‘(<>)’
    Either remove definition for ‘mappend’ (recommended) or define as ‘mappend = (<>)’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/semigroup-monoid
   |
41 |     (a :<|> b) `mappend` (a' :<|> b') = (a `mappend` a') :<|> (b `mappend` b')
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/API/BasicAuth.hs:27:47: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
27 | data BasicAuth (realm :: Symbol) (userData :: *)
   |                                               ^

src/Servant/API/Capture.hs:20:25: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
20 | data Capture' (mods :: [*]) (sym :: Symbol) (a :: *)
   |                         ^

src/Servant/API/Capture.hs:20:51: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
20 | data Capture' (mods :: [*]) (sym :: Symbol) (a :: *)
   |                                                   ^

src/Servant/API/Capture.hs:30:39: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
30 | data CaptureAll (sym :: Symbol) (a :: *)
   |                                       ^

src/Servant/API/ContentTypes.hs:180:47: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
180 | class (AllMime list) => AllCTRender (list :: [*]) a where
    |                                               ^

src/Servant/API/ContentTypes.hs:234:31: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
234 | class AllCTUnrender (list :: [*]) a where
    |                               ^

src/Servant/API/ContentTypes.hs:253:25: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
253 | class AllMime (list :: [*]) where
    |                         ^

src/Servant/API/ContentTypes.hs:271:49: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
271 | class (AllMime list) => AllMimeRender (list :: [*]) a where
    |                                                 ^

src/Servant/API/ContentTypes.hs:311:51: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
311 | class (AllMime list) => AllMimeUnrender (list :: [*]) a where
    |                                                   ^

src/Servant/API/Description.hs:62:57: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
62 | type family FoldDescription' (acc :: Symbol) (mods ::  [*]) :: Symbol where
   |                                                         ^

src/Servant/API/Fragment.hs:17:21: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
17 | data Fragment (a :: *)
   |                     ^

src/Servant/API/Generic.hs:86:25: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
86 |     type mode :- api :: *
   |                         ^

src/Servant/API/Modifiers.hs:54:51: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
54 | type family FoldRequired' (acc :: Bool) (mods :: [*]) :: Bool where
   |                                                   ^

src/Servant/API/Modifiers.hs:75:51: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
75 | type family FoldLenient' (acc :: Bool) (mods ::  [*]) :: Bool where
   |                                                   ^

src/Servant/API/Header.hs:26:24: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
26 | data Header' (mods :: [*]) (sym :: Symbol) (a :: *)
   |                        ^

src/Servant/API/Header.hs:26:50: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
26 | data Header' (mods :: [*]) (sym :: Symbol) (a :: *)
   |                                                  ^

src/Servant/API/NamedRoutes.hs:10:26: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
10 | data NamedRoutes (api :: * -> *)
   |                          ^

src/Servant/API/NamedRoutes.hs:10:31: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
10 | data NamedRoutes (api :: * -> *)
   |                               ^

src/Servant/API/QueryParam.hs:24:28: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
24 | data QueryParam' (mods :: [*]) (sym :: Symbol) (a :: *)
   |                            ^

src/Servant/API/QueryParam.hs:24:54: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
24 | data QueryParam' (mods :: [*]) (sym :: Symbol) (a :: *)
   |                                                      ^

src/Servant/API/QueryParam.hs:38:40: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
38 | data QueryParams (sym :: Symbol) (a :: *)
   |                                        ^

src/Servant/API/ReqBody.hs:24:25: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
24 | data ReqBody' (mods :: [*]) (contentTypes :: [*]) (a :: *)
   |                         ^

src/Servant/API/ReqBody.hs:24:47: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
24 | data ReqBody' (mods :: [*]) (contentTypes :: [*]) (a :: *)
   |                                               ^

src/Servant/API/ReqBody.hs:24:57: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
24 | data ReqBody' (mods :: [*]) (contentTypes :: [*]) (a :: *)
   |                                                         ^

src/Servant/API/Sub.hs:18:27: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
18 | data (path :: k) :> (a :: *)
   |                           ^

src/Servant/API/UVerb/Union.hs:78:16: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
78 |   forall (c :: * -> Constraint) (a :: *) (as :: [*]).
   |                ^

src/Servant/API/UVerb/Union.hs:78:39: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
78 |   forall (c :: * -> Constraint) (a :: *) (as :: [*]).
   |                                       ^

src/Servant/API/UVerb/Union.hs:78:50: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
78 |   forall (c :: * -> Constraint) (a :: *) (as :: [*]).
   |                                                  ^

src/Servant/API/UVerb/Union.hs:91:28: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
91 | matchUnion :: forall (a :: *) (as :: [*]). (IsMember a as) => Union as -> Maybe a
   |                            ^

src/Servant/API/UVerb/Union.hs:91:39: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
91 | matchUnion :: forall (a :: *) (as :: [*]). (IsMember a as) => Union as -> Maybe a
   |                                       ^

src/Servant/API/ResponseHeaders.hs:39:1: warning: [-Wunused-imports]
    The import of ‘init, unlines’
    from module ‘Data.ByteString.Char8’ is redundant
   |
39 | import           Data.ByteString.Char8     as BS
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

src/Servant/API/ResponseHeaders.hs:94:32: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
94 | type family HeaderValMap (f :: * -> *) (xs :: [*]) where
   |                                ^

src/Servant/API/ResponseHeaders.hs:94:37: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
94 | type family HeaderValMap (f :: * -> *) (xs :: [*]) where
   |                                     ^

src/Servant/API/ResponseHeaders.hs:94:48: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
94 | type family HeaderValMap (f :: * -> *) (xs :: [*]) where
   |                                                ^

src/Servant/API/UVerb.hs:44:51: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
44 | class KnownStatus (StatusOf a) => HasStatus (a :: *) where
   |                                                   ^

src/Servant/API/UVerb.hs:45:23: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
45 |   type StatusOf (a :: *) :: Nat
   |                       ^

src/Servant/API/UVerb.hs:56:27: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
56 | class HasStatuses (as :: [*]) where
   |                           ^

src/Servant/API/UVerb.hs:57:25: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
57 |   type Statuses (as :: [*]) :: [Nat]
   |                         ^

src/Servant/API/UVerb.hs:103:52: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
103 | data UVerb (method :: StdMethod) (contentTypes :: [*]) (as :: [*])
    |                                                    ^

src/Servant/API/UVerb.hs:103:64: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
103 | data UVerb (method :: StdMethod) (contentTypes :: [*]) (as :: [*])
    |                                                                ^

src/Servant/API/Verbs.hs:29:64: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
29 | data Verb (method :: k1) (statusCode :: Nat) (contentTypes :: [*]) (a :: *)
   |                                                                ^

src/Servant/API/Verbs.hs:29:74: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
29 | data Verb (method :: k1) (statusCode :: Nat) (contentTypes :: [*]) (a :: *)
   |                                                                          ^

src/Servant/API/TypeLevel.hs:179:31: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
179 | type family IsIn (endpoint :: *) (api :: *) :: Constraint where
    |                               ^

src/Servant/API/TypeLevel.hs:179:42: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
179 | type family IsIn (endpoint :: *) (api :: *) :: Constraint where
    |                                          ^

src/Servant/API/WithNamedContext.hs:21:56: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
21 | data WithNamedContext (name :: Symbol) (subContext :: [*]) subApi
   |                                                        ^

src/Servant/Types/SourceT.hs:73:19: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
73 | instance Identity ~ m => Foldable (SourceT m) where
   |                   ^

src/Servant/Types/SourceT.hs:126:19: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
    |
126 | instance Identity ~ m => Foldable (StepT m) where
    |                   ^
Completed    pipes-bytestring-2.1.7 (lib)

src/Servant/API/Stream.hs:66:56: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
66 | data Stream (method :: k1) (status :: Nat) (framing :: *) (contentType :: *) (a :: *)
   |                                                        ^

src/Servant/API/Stream.hs:66:75: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
66 | data Stream (method :: k1) (status :: Nat) (framing :: *) (contentType :: *) (a :: *)
   |                                                                           ^

src/Servant/API/Stream.hs:66:84: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
66 | data Stream (method :: k1) (status :: Nat) (framing :: *) (contentType :: *) (a :: *)
   |                                                                                    ^

src/Servant/API/Stream.hs:75:28: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
75 | data StreamBody' (mods :: [*]) (framing :: *) (contentType :: *) (a :: *)
   |                            ^

src/Servant/API/Stream.hs:75:44: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
75 | data StreamBody' (mods :: [*]) (framing :: *) (contentType :: *) (a :: *)
   |                                            ^

src/Servant/API/Stream.hs:75:63: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
75 | data StreamBody' (mods :: [*]) (framing :: *) (contentType :: *) (a :: *)
   |                                                               ^

src/Servant/API/Stream.hs:75:72: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
75 | data StreamBody' (mods :: [*]) (framing :: *) (contentType :: *) (a :: *)
   |                                                                        ^

src/Servant/Links.hs:420:19: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
420 | data AsLink (a :: *)
    |                   ^

src/Servant/Links.hs:456:32: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
456 |     type MkLink endpoint (a :: *)
    |                                ^

src/Servant/Links.hs:535:57: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
535 | instance HasLink sub => HasLink (Header' mods sym (a :: *) :> sub) where
    |                                                         ^

src/Servant/Links.hs:611:24: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
611 | class GLink (routes :: * -> *) (a :: *) where
    |                        ^

src/Servant/Links.hs:611:29: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
611 | class GLink (routes :: * -> *) (a :: *) where
    |                             ^

src/Servant/Links.hs:611:38: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
611 | class GLink (routes :: * -> *) (a :: *) where
    |                                      ^

src/Servant/Links.hs:670:76: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
670 |     type MkLink (arr :> sub) _ = TypeError (PartialApplication (HasLink :: * -> Constraint) arr)
    |                                                                            ^

src/Servant/Links.hs:674:1: warning: [-Wmissing-methods]
    • No explicit associated type or default declaration for ‘MkLink’
    • In the instance declaration for ‘HasLink (ty :> sub)’
    |
674 | instance {-# OVERLAPPABLE #-} TypeError (NoInstanceForSub 
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

src/Servant/Links.hs:674:31: warning: [-Wmissing-methods]
    • No explicit implementation for
        ‘toLink’
    • In the instance declaration for ‘HasLink (ty :> sub)’
    |
674 | instance {-# OVERLAPPABLE #-} TypeError (NoInstanceForSub 
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

src/Servant/Links.hs:680:1: warning: [-Wmissing-methods]
    • No explicit associated type or default declaration for ‘MkLink’
    • In the instance declaration for ‘HasLink api’
    |
680 | instance {-# OVERLAPPABLE #-} TypeError (NoInstanceFor (HasLink api)) => HasLink api
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Links.hs:680:31: warning: [-Wmissing-methods]
    • No explicit implementation for
        ‘toLink’
    • In the instance declaration for ‘HasLink api’
    |
680 | instance {-# OVERLAPPABLE #-} TypeError (NoInstanceFor (HasLink api)) => HasLink api
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Conduit.hs:39:12: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
39 | instance m ~ IO => ConduitToSourceIO (ResourceT m) where
   |            ^

src/Servant/Conduit.hs:54:34: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
54 | instance (ConduitToSourceIO m, r ~ ())
   |                                  ^

src/Servant/Conduit.hs:59:24: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
59 | instance (MonadIO m, r ~ ()) => FromSourceIO o (ConduitT i o m r) where
   |                        ^

src/Servant/Server/Internal/Context.hs:54:27: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
54 | type family (.++) (l1 :: [*]) (l2 :: [*]) where
   |                           ^

src/Servant/Server/Internal/Context.hs:54:39: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
54 | type family (.++) (l1 :: [*]) (l2 :: [*]) where
   |                                       ^

src/Servant/Server/Internal/Context.hs:76:36: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
76 | class HasContextEntry (context :: [*]) (val :: *) where
   |                                    ^

src/Servant/Server/Internal/Context.hs:76:48: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
76 | class HasContextEntry (context :: [*]) (val :: *) where
   |                                                ^

src/Servant/Server/Internal/Context.hs:93:52: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
93 | data NamedContext (name :: Symbol) (subContext :: [*])
   |                                                    ^

src/Servant/Pipes.hs:40:12: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
40 | instance m ~ IO => PipesToSourceIO (SafeT m) where
   |            ^

src/Servant/Pipes.hs:54:33: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
54 | instance (PipesToSourceIO m, a' ~ X, a ~ (), b' ~ (), r ~ ())
   |                                 ^

src/Servant/Pipes.hs:54:40: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
54 | instance (PipesToSourceIO m, a' ~ X, a ~ (), b' ~ (), r ~ ())
   |                                        ^

src/Servant/Pipes.hs:54:49: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
54 | instance (PipesToSourceIO m, a' ~ X, a ~ (), b' ~ (), r ~ ())
   |                                                 ^

src/Servant/Pipes.hs:54:57: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
54 | instance (PipesToSourceIO m, a' ~ X, a ~ (), b' ~ (), r ~ ())
   |                                                         ^

src/Servant/Pipes.hs:62:25: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
62 | instance (MonadIO m, a' ~ X, a ~ (), b' ~ (), r ~ ())
   |                         ^

src/Servant/Pipes.hs:62:32: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
62 | instance (MonadIO m, a' ~ X, a ~ (), b' ~ (), r ~ ())
   |                                ^

src/Servant/Pipes.hs:62:41: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
62 | instance (MonadIO m, a' ~ X, a ~ (), b' ~ (), r ~ ())
   |                                         ^

src/Servant/Pipes.hs:62:49: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
62 | instance (MonadIO m, a' ~ X, a ~ (), b' ~ (), r ~ ())
   |                                                 ^

src/Servant/Server/Internal/RouteResult.hs:31:5: warning: [-Wnoncanonical-monad-instances]
    Noncanonical ‘pure = return’ definition detected
    in the instance declaration for ‘Applicative RouteResult’.
    Move definition from ‘return’ to ‘pure’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
   |
31 |     pure = return
   |     ^^^^^^^^^^^^^

src/Servant/Server/Internal/RouteResult.hs:35:5: warning: [-Wnoncanonical-monad-instances]
    Noncanonical ‘return’ definition detected
    in the instance declaration for ‘Monad RouteResult’.
    ‘return’ will eventually be removed in favour of ‘pure’
    Either remove definition for ‘return’ (recommended) or define as ‘return = pure’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
   |
35 |     return = Route
   |     ^^^^^^^^^^^^^^

src/Servant/Server/Internal/RouteResult.hs:47:5: warning: [-Wnoncanonical-monad-instances]
    Noncanonical ‘pure = return’ definition detected
    in the instance declaration for ‘Applicative (RouteResultT m)’.
    Move definition from ‘return’ to ‘pure’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
   |
47 |     pure  = return
   |     ^^^^^^^^^^^^^^

src/Servant/Server/Internal/RouteResult.hs:51:5: warning: [-Wnoncanonical-monad-instances]
    Noncanonical ‘return’ definition detected
    in the instance declaration for ‘Monad (RouteResultT m)’.
    ‘return’ will eventually be removed in favour of ‘pure’
    Either remove definition for ‘return’ (recommended) or define as ‘return = pure’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
   |
51 |     return = RouteResultT . return . Route
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Client/Core/Request.hs:56:34: warning: [-Wunused-imports]
    The import of ‘toEncodedUrlPiece’
    from module ‘Servant.API’ is redundant
   |
56 |                  (ToHttpApiData, toEncodedUrlPiece, toQueryParam, toHeader, SourceIO)
   |                                  ^^^^^^^^^^^^^^^^^

src/Servant/Server/Internal/ErrorFormatter.hs:70:43: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
70 | type MkContextWithErrorFormatter (ctx :: [*]) = ctx .++ DefaultErrorFormatters
   |                                           ^

src/Servant/Server/Internal/ErrorFormatter.hs:72:48: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
72 | mkContextWithErrorFormatter :: forall (ctx :: [*]). Context ctx -> Context (MkContextWithErrorFormatter ctx)
   |                                                ^

src/Servant/Client/Core/Auth.hs:21:33: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
21 | type family AuthClientData a :: *
   |                                 ^

src/Servant/Client/Core/RunClient.hs:53:18: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
53 | instance ClientF ~ f => RunClient (Free f) where
   |                  ^

src/Servant/Client/Core/HasClient.hs:35:1: warning: [-Wunused-imports]
    The qualified import of ‘Data.ByteString’ is redundant
      except perhaps to import instances from ‘Data.ByteString’
    To import instances alone, use: import Data.ByteString()
   |
35 | import qualified Data.ByteString as BS
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Client/Core/HasClient.hs:81:50: warning: [-Wunused-imports]
    The import of ‘toUrlPiece’ from module ‘Servant.API’ is redundant
   |
81 |                  getResponse, toEncodedUrlPiece, toUrlPiece, NamedRoutes)
   |                                                  ^^^^^^^^^^

src/Servant/Client/Core/HasClient.hs:131:21: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
131 |   type Client (m :: * -> *) (api :: *) :: *
    |                     ^

src/Servant/Client/Core/HasClient.hs:131:26: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
131 |   type Client (m :: * -> *) (api :: *) :: *
    |                          ^

src/Servant/Client/Core/HasClient.hs:131:37: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
131 |   type Client (m :: * -> *) (api :: *) :: *
    |                                     ^

src/Servant/Client/Core/HasClient.hs:131:43: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
131 |   type Client (m :: * -> *) (api :: *) :: *
    |                                           ^

src/Servant/Client/Core/HasClient.hs:336:33: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
336 | class UnrenderResponse (cts :: [*]) (a :: *) where
    |                                 ^

src/Servant/Client/Core/HasClient.hs:336:43: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
336 | class UnrenderResponse (cts :: [*]) (a :: *) where
    |                                           ^

src/Servant/Client/Core/HasClient.hs:843:22: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
843 | data AsClientT (m :: * -> *)
    |                      ^

src/Servant/Client/Core/HasClient.hs:843:27: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
843 | data AsClientT (m :: * -> *)
    |                           ^

src/Servant/Client/Core/HasClient.hs:853:23: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
853 | class GClient (api :: * -> *) m where
    |                       ^

src/Servant/Client/Core/HasClient.hs:853:28: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
853 | class GClient (api :: * -> *) m where
    |                            ^

src/Servant/Client/Core/HasClient.hs:1010:1: warning: [-Wmissing-methods]
    • No explicit associated type or default declaration for ‘Client’
    • In the instance declaration for ‘HasClient m (ty :> sub)’
     |
1010 | instance {-# OVERLAPPABLE #-} (RunClient m, TypeError (NoInstanceForSub (HasClient m) ty)) => HasClient m (ty :> sub)
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Client/Core/HasClient.hs:1010:31: warning: [-Wmissing-methods]
    • No explicit implementation for
        ‘clientWithRoute’ and ‘hoistClientMonad’
    • In the instance declaration for ‘HasClient m (ty :> sub)’
     |
1010 | instance {-# OVERLAPPABLE #-} (RunClient m, TypeError (NoInstanceForSub (HasClient m) ty)) => HasClient m (ty :> sub)
     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Client/Core/HasClient.hs:1012:1: warning: [-Wmissing-methods]
    • No explicit associated type or default declaration for ‘Client’
    • In the instance declaration for ‘HasClient m api’
     |
1012 | instance {-# OVERLAPPABLE #-} (RunClient m, TypeError (NoInstanceFor (HasClient m api))) => HasClient m api
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Client/Core/HasClient.hs:1012:31: warning: [-Wmissing-methods]
    • No explicit implementation for
        ‘clientWithRoute’ and ‘hoistClientMonad’
    • In the instance declaration for ‘HasClient m api’
     |
1012 | instance {-# OVERLAPPABLE #-} (RunClient m, TypeError (NoInstanceFor (HasClient m api))) => HasClient m api
     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Server/Internal.hs:115:38: warning: [-Wunused-imports]
    The import of ‘TypeError’ from module ‘GHC.TypeLits’ is redundant
    |
115 |                  (ErrorMessage (..), TypeError)
    |                                      ^^^^^^^^^

src/Servant/Server/Internal.hs:124:26: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
124 |   type ServerT api (m :: * -> *) :: *
    |                          ^

src/Servant/Server/Internal.hs:124:31: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
124 |   type ServerT api (m :: * -> *) :: *
    |                               ^

src/Servant/Server/Internal.hs:124:37: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
124 |   type ServerT api (m :: * -> *) :: *
    |                                     ^

src/Servant/Server/Internal.hs:904:79: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
904 |     type ServerT (arr :> sub) _ = TypeError (PartialApplication (HasServer :: * -> [*] -> Constraint) arr)
    |                                                                               ^

src/Servant/Server/Internal.hs:904:85: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
904 |     type ServerT (arr :> sub) _ = TypeError (PartialApplication (HasServer :: * -> [*] -> Constraint) arr)
    |                                                                                     ^

src/Servant/Server/Internal.hs:946:1: warning: [-Wmissing-methods]
    • No explicit associated type or default declaration for ‘ServerT’
    • In the instance declaration for ‘HasServer (ty :> sub) context’
    |
946 | instance {-# OVERLAPPABLE #-} TypeError (NoInstanceForSub 
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

src/Servant/Server/Internal.hs:946:31: warning: [-Wmissing-methods]
    • No explicit implementation for
        ‘route’ and ‘hoistServerWithContext’
    • In the instance declaration for ‘HasServer (ty :> sub) context’
    |
946 | instance {-# OVERLAPPABLE #-} TypeError (NoInstanceForSub 
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

src/Servant/Server/Internal.hs:952:1: warning: [-Wmissing-methods]
    • No explicit associated type or default declaration for ‘ServerT’
    • In the instance declaration for ‘HasServer api context’
    |
952 | instance {-# OVERLAPPABLE #-} TypeError (NoInstanceFor (HasServer api context)) => HasServer api context
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Server/Internal.hs:952:31: warning: [-Wmissing-methods]
    • No explicit implementation for
        ‘route’ and ‘hoistServerWithContext’
    • In the instance declaration for ‘HasServer api context’
    |
952 | instance {-# OVERLAPPABLE #-} TypeError (NoInstanceFor (HasServer api context)) => HasServer api context
    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Server/Internal.hs:977:22: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
977 | data AsServerT (m :: * -> *)
    |                      ^

src/Servant/Server/Internal.hs:977:27: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
977 | data AsServerT (m :: * -> *)
    |                           ^

src/Servant/Server/Internal.hs:1003:23: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
     |
1003 | class GServer (api :: * -> *) (m :: * -> *) where
     |                       ^

src/Servant/Server/Internal.hs:1003:28: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
     |
1003 | class GServer (api :: * -> *) (m :: * -> *) where
     |                            ^

src/Servant/Server/Internal.hs:1003:37: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
     |
1003 | class GServer (api :: * -> *) (m :: * -> *) where
     |                                     ^

src/Servant/Server/Internal.hs:1003:42: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
     |
1003 | class GServer (api :: * -> *) (m :: * -> *) where
     |                                          ^

src/Servant/Client/Generic.hs:26:41: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
26 |        , Client m (ToServantApi routes) ~ ToServant routes (AsClientT m)
   |                                         ^

src/Servant/Client/Generic.hs:38:41: warning: [-Wtype-equality-requires-operators]
    The use of ‘~’ without TypeOperators
    will become an error in a future GHC release.
    Suggested fix: Perhaps you intended to use TypeOperators
   |
38 |        , Client n (ToServantApi routes) ~ ToServant routes (AsClientT n)
   |                                         ^

src/Servant/Server/UVerb.hs:42:16: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
42 |   forall (x :: *) (xs :: [*]) (f :: * -> *).
   |                ^

src/Servant/Server/UVerb.hs:42:27: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
42 |   forall (x :: *) (xs :: [*]) (f :: * -> *).
   |                           ^

src/Servant/Server/UVerb.hs:42:37: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to meanBuilding     openssl-streams-1.2.3.0 (lib)
 ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
42 |   forall (x :: *) (xs :: [*]) (f :: * -> *).
   |                                     ^

src/Servant/Server/UVerb.hs:42:42: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
42 |   forall (x :: *) (xs :: [*]) (f :: * -> *).
   |                                          ^

src/Servant/Server/UVerb.hs:48:33: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
48 | class IsServerResource (cts :: [*]) a where
   |                                 ^

src/Servant/Server/Generic.hs:40:24: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
40 |   :: forall (routes :: * -> *) (m :: * -> *).
   |                        ^

src/Servant/Server/Generic.hs:40:29: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
40 |   :: forall (routes :: * -> *) (m :: * -> *).
   |                             ^

src/Servant/Server/Generic.hs:40:38: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
40 |   :: forall (routes :: * -> *) (m :: * -> *).
   |                                      ^

src/Servant/Server/Generic.hs:40:43: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
40 |   :: forall (routes :: * -> *) (m :: * -> *).
   |                                           ^

src/Servant/Server/Generic.hs:58:24: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
58 |   :: forall (routes :: * -> *) (m :: * -> *) (ctx :: [*]).
   |                        ^

src/Servant/Server/Generic.hs:58:29: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
58 |   :: forall (routes :: * -> *) (m :: * -> *) (ctx :: [*]).
   |                             ^

src/Servant/Server/Generic.hs:58:38: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
58 |   :: forall (routes :: * -> *) (m :: * -> *) (ctx :: [*]).
   |                                      ^

src/Servant/Server/Generic.hs:58:43: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
58 |   :: forall (routes :: * -> *) (m :: * -> *) (ctx :: [*]).
   |                                           ^

src/Servant/Server/Generic.hs:58:55: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
58 |   :: forall (routes :: * -> *) (m :: * -> *) (ctx :: [*]).
   |                                                       ^

src/Servant/Server/Experimental/Auth.hs:41:33: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
41 | type family AuthServerData a :: *
   |                                 ^

src/Servant/Client/Internal/HttpClient.hs:46:1: warning: [-Wunused-imports]
    The import of ‘Data.Either’ is redundant
      except perhaps to import instances from ‘Data.Either’
    To import instances alone, use: import Data.Either()
   |
46 | import           Data.Either
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

src/Servant/Client/Internal/HttpClient.hs:53:19: warning: [-Wunused-imports]
    The import of ‘maybe’ from module ‘Data.Maybe’ is redundant
   |
53 |                  (maybe, maybeToList)
   |                   ^^^^^

src/Servant/Client/Internal/HttpClient.hs:66:33: warning: [-Wunused-imports]
    The import of ‘renderQuery’
    from module ‘Network.HTTP.Types’ is redundant
   |
66 |                  (hContentType, renderQuery, statusIsSuccessful, urlEncode, Status)
   |                                 ^^^^^^^^^^^
Warning: 'license-file: ../../../servant/LICENSE' is a relative path outside
of the source tree. This will not work when generating a tarball with 'sdist'.
Warning: 'license-file: ../../../servant/LICENSE' is a relative path outside

src/Servant/Client/Internal/HttpClient/Streaming.hs:27:1: warning: [-Wunused-imports]
    The import of ‘Control.Monad’ is redundant
      except perhaps to import instances from ‘Control.Monad’
    To import instances alone, use: import Control.Monad()
   |
27 | import           Control.Monad
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
Warning: 'license-file: ../../../servant/LICENSE' is a relative path outside

src/Servant/Pagination.hs:120:38: warning: [-Wunused-imports]
    The import of ‘filter’ from module ‘Data.List’ is redundant
    |
120 | import           Data.List          (filter, find, intercalate)
    |                                      ^^^^^^

src/Servant/Pagination.hs:122:1: warning: [-Wunused-imports]
    The import of ‘Data.Proxy’ is redundant
      except perhaps to import instances from ‘Data.Proxy’
    To import instances alone, use: import Data.Proxy()
    |
122 | import           Data.Proxy         (Proxy (..))
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Pagination.hs:123:1: warning: [-Wunused-imports]
    The import of ‘Data.Semigroup’ is redundant
      except perhaps to import instances from ‘Data.Semigroup’
    To import instances alone, use: import Data.Semigroup()
    |
123 | import           Data.Semigroup     ((<>))
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Pagination.hs:155:28: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
155 | data Ranges :: [Symbol] -> * -> * where
    |                            ^

src/Servant/Pagination.hs:155:33: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
155 | data Ranges :: [Symbol] -> * -> * where
    |                                 ^

src/Servant/Pagination.hs:175:36: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
175 | data Range (field :: Symbol) (a :: *) =
    |                                    ^

src/Servant/Pagination.hs:352:52: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
352 | type PageHeaders (fields :: [Symbol]) (resource :: *) =
    |                                                    ^

src/Servant/Pagination.hs:391:36: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
391 |   type RangeType resource field :: *
    |                                    ^

test/Servant/Server/StreamingSpec.hs:62:11: warning: [-Wdeprecations]
    In the use of ‘requestBody’ (imported from Network.Wai.Internal):
    Deprecated: "requestBody's name is misleading because it only gets a partial chunk of the body. Use getRequestBodyChunk instead."
   |
62 |           requestBody = streamTestData,
   |           ^^^^^^^^^^^

test/Servant/Server/StreamingSpec.hs:84:7: warning: [-Wname-shadowing]
    This binding for ‘respond’ shadows the existing binding
      imported from ‘Servant’ at test/Servant/Server/StreamingSpec.hs:22:1-24
      (and originally defined in ‘Servant.Server.UVerb’)
   |
84 |   let respond response = do
   |       ^^^^^^^

test/Servant/Server/UsingContextSpec/TestCombinators.hs:40:7: warning: [-Wname-shadowing]
    This binding for ‘inject’ shadows the existing binding
      imported from ‘Servant’ at test/Servant/Server/UsingContextSpec/TestCombinators.hs:22:1-24
      (and originally defined in ‘Servant.API.UVerb.Union’)
   |
40 |       inject f = f (getContextEntry context)
   |       ^^^^^^

test/Servant/Server/UsingContextSpec/TestCombinators.hs:61:64: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
61 | data NamedContextWithBirdface (name :: Symbol) (subContext :: [*])
   |                                                                ^

test/Servant/ServerSpec.hs:269:10: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a lambda abstraction:
        Patterns of type ‘[Char]’ not matched:
            []
            (p:_) where p is not one of {'c'}
            ['c']
            ('c':p:_) where p is not one of {'a'}
            ...
    |
269 |         (\ "captured" -> Tagged $ \request_ sendResponse ->
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

example/Main.hs:18:1: warning: [-Wunused-imports]
    The import of ‘Network.Wai’ is redundant
      except perhaps to import instances from ‘Network.Wai’
    To import instances alone, use: import Network.Wai()
   |
18 | import           Network.Wai
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

PostgresPool.lhs:52:3: warning: [-Wunused-do-bind]
    A do-notation statement discarded a result of type ‘GHC.Int.Int64’
    Suggested fix:
      Suppress this warning by saying
        ‘_ <- execute_
                conn "CREATE TABLE IF NOT EXISTS messages (msg text not null)"’
   |
52 |   execute_ conn
   |   ^^^^^^^^^^^^^...

PostgresPool.lhs:75:11: warning: [-Wunused-do-bind]
    A do-notation statement discarded a result of type ‘GHC.Int.Int64’
    Suggested fix:
      Suppress this warning by saying
        ‘_ <- liftIO . withResource conns
                $ \ conn
                    -> execute conn "INSERT INTO messages VALUES (?)" (Only msg)’
   |
75 |           liftIO . withResource conns $ \conn ->
   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

PostgresPool.lhs:99:3: warning: [-Wdeprecations]
    In the use of ‘createPool’ (imported from Data.Pool):
    Deprecated: "Use newPool instead"
   |
99 |   createPool (connectPostgreSQL connStr)
   |   ^^^^^^^^^^

PostgresPool.lhs:129:7: warning: [-Wunused-do-bind]
    A do-notation statement discarded a result of type ‘NoContent’
    Suggested fix:
      Suppress this warning by saying ‘_ <- postMsg "hello"’
    |
129 |       postMsg "hello"
    |       ^^^^^^^^^^^^^^^

PostgresPool.lhs:130:7: warning: [-Wunused-do-bind]
    A do-notation statement discarded a result of type ‘NoContent’
    Suggested fix:
      Suppress this warning by saying ‘_ <- postMsg "world"’
    |
130 |       postMsg "world"
    |       ^^^^^^^^^^^^^^^

Generic.lhs:12:1: warning: [-Wunused-imports]
    The import of ‘Data.Proxy’ is redundant
      except perhaps to import instances from ‘Data.Proxy’
    To import instances alone, use: import Data.Proxy()
   |
12 | import Data.Proxy                 (Proxy (..))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Generic.lhs:125:1: warning: [-Wunused-top-binds]
    Defined but not used: ‘apiMyMonad’
    |
125 | apiMyMonad = genericApi (Proxy :: Proxy Routes)
    | ^^^^^^^^^^

Streaming.lhs:36:1: warning: [-Wunused-imports]
    The import of ‘Network.Wai’ is redundant
      except perhaps to import instances from ‘Network.Wai’
    To import instances alone, use: import Network.Wai()
   |
36 | import           Network.Wai
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

ManagedResource.lhs:12:36: warning: [-Wunused-imports]
    The import of ‘throwIO’
    from module ‘Control.Exception’ is redundant
   |
12 | import Control.Exception (bracket, throwIO)
   |                                    ^^^^^^^
Installing   http-streams-0.8.9.6 (lib)

example/Main.hs:20:1: warning: [-Wunused-imports]
    The import of ‘Network.Wai’ is redundant
      except perhaps to import instances from ‘Network.Wai’
    To import instances alone, use: import Network.Wai()
   |
20 | import           Network.Wai
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

DBConnection.lhs:90:7: warning: [-Wunused-do-bind]
    A do-notation statement discarded a result of type ‘NoContent’
    Suggested fix:
      Suppress this warning by saying ‘_ <- postMsg "hello"’
   |
90 |       postMsg "hello"
   |       ^^^^^^^^^^^^^^^

DBConnection.lhs:91:7: warning: [-Wunused-do-bind]
    A do-notation statement discarded a result of type ‘NoContent’
    Suggested fix:
      Suppress this warning by saying ‘_ <- postMsg "world"’
   |
91 |       postMsg "world"
   |       ^^^^^^^^^^^^^^^

test/Servant/ClientTestUtils.hs:223:8: warning: [-Wmissing-signatures]
    Top-level binding with no type signature:
      captureVerbatim :: Verbatim -> ClientM Text
    |
223 |   :<|> captureVerbatim = client api
    |        ^^^^^^^^^^^^^^^

test/Servant/StreamSpec.hs:24:1: warning: [-Wunused-imports]
    The import of ‘Control.Monad’ is redundant
      except perhaps to import instances from ‘Control.Monad’
    To import instances alone, use: import Control.Monad()
   |
24 | import           Control.Monad
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

test/Servant/StreamSpec.hs:26:1: warning: [-Wunused-imports]
    The import of ‘Control.Monad.Codensity’ is redundant
      except perhaps to import instances from ‘Control.Monad.Codensity’
    To import instances alone, use: import Control.Monad.Codensity()
   |
26 | import           Control.Monad.Codensity
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

test/Servant/StreamSpec.hs:28:1: warning: [-Wunused-imports]
    The import of ‘Control.Monad.IO.Class’ is redundant
      except perhaps to import instances from ‘Control.Monad.IO.Class’
    To import instances alone, use: import Control.Monad.IO.Class()
   |
28 | import           Control.Monad.IO.Class
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

test/Servant/StreamSpec.hs:48:1: warning: [-Wunused-imports]
    The import of ‘System.Mem’ is redundant
      except perhaps to import instances from ‘System.Mem’
    To import instances alone, use: import System.Mem()
   |
48 | import           System.Mem
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^...

test/Servant/StreamSpec.hs:55:1: warning: [-Wunused-imports]
    The import of ‘GHC.Stats’ is redundant
      except perhaps to import instances from ‘GHC.Stats’
    To import instances alone, use: import GHC.Stats()
   |
55 | import           GHC.Stats
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^...

test/Servant/StreamSpec.hs:82:29: warning: [-Wunused-top-binds]
    Defined but not used: ‘getGetALot’
   |
82 | getGetNL :<|> getGetNS :<|> getGetALot :<|> getStreamBody = client api
   |                             ^^^^^^^^^^

test/Servant/StreamSpec.hs:123:39: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a lambda abstraction:
        Patterns of type ‘Either
                            ClientError (SourceIO Person)’ not matched:
            Left _
    |
123 |         withClient getGetNL baseUrl $ \(Right res) ->
    |                                       ^^^^^^^^^^^^^^^...

test/Servant/StreamSpec.hs:127:39: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a lambda abstraction:
        Patterns of type ‘Either
                            ClientError (SourceIO Person)’ not matched:
            Left _
    |
127 |         withClient getGetNS baseUrl $ \(Right res) ->
    |                                       ^^^^^^^^^^^^^^^...

test/Servant/StreamSpec.hs:131:61: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a lambda abstraction:
        Patterns of type ‘Either
                            ClientError (SourceIO BS.ByteString)’ not matched:
            Left _
    |
131 |         withClient (getStreamBody (source input)) baseUrl $ \(Right res) ->
    |                                                             ^^^^^^^^^^^^^^^...

test/Servant/WrappedApiSpec.hs:43:36: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
43 |   WrappedApi :: (HasServer (api :: *) '[], Server api ~ Handler a,
   |                                    ^

test/Servant/ClientSpec.hs:401:36: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
401 |   WrappedApi :: (HasServer (api :: *) '[], Server api ~ Handler a,
    |                                    ^

test/Servant/StreamSpec.hs:98:39: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a lambda abstraction:
        Patterns of type ‘Either
                            ClientError (SourceIO Person)’ not matched:
            Left _
   |
98 |         withClient getGetNL baseUrl $ \(Right res) ->
   |                                       ^^^^^^^^^^^^^^^...

test/Servant/StreamSpec.hs:102:39: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a lambda abstraction:
        Patterns of type ‘Either
                            ClientError (SourceIO Person)’ not matched:
            Left _
    |
102 |         withClient getGetNS baseUrl $ \(Right res) ->
    |                                       ^^^^^^^^^^^^^^^...

test/Servant/StreamSpec.hs:106:61: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a lambda abstraction:
        Patterns of type ‘Either
                            ClientError (SourceIO BS.ByteString)’ not matched:
            Left _
    |
106 |         withClient (getStreamBody (source input)) baseUrl $ \(Right res) ->
    |                                                             ^^^^^^^^^^^^^^^...

example/Main.hs:20:1: warning: [-Wunused-imports]
    The import of ‘Network.Wai’ is redundant
      except perhaps to import instances from ‘Network.Wai’
    To import instances alone, use: import Network.Wai()
   |
20 | import           Network.Wai
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

src/Servant/Foreign/Internal.hs:277:37: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
277 | class HasForeign lang ftype (api :: *) where
    |                                     ^

src/Servant/Foreign/Internal.hs:278:29: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
    |
278 |   type Foreign ftype api :: *
    |                             ^

src/Servant/Docs/Internal.hs:57:1: warning: [-Wunused-imports]
    The import of ‘Generic, Rep’
    from module ‘GHC.Generics’ is redundant
   |
57 | import           GHC.Generics
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

src/Servant/Docs/Internal.hs:132:5: warning: [-Wnoncanonical-monoid-instances]
    Noncanonical ‘(<>) = mappend’ definition detected
    in the instance declaration for ‘Semigroup API’.
    Move definition from ‘mappend’ to ‘(<>)’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/semigroup-monoid
    |
132 |     (<>) = mappend
    |     ^^^^^^^^^^^^^^

src/Servant/Docs/Internal.hs:135:5: warning: [-Wnoncanonical-monoid-instances]
    Noncanonical ‘mappend’ definition detected
    in the instance declaration for ‘Monoid API’.
    ‘mappend’ will eventually be removed in favour of ‘(<>)’
    Either remove definition for ‘mappend’ (recommended) or define as ‘mappend = (<>)’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/semigroup-monoid
    |
135 |     API a1 b1 `mappend` API a2 b2 = API (a1 `mappend` a2)
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

src/Servant/Docs/Internal.hs:211:5: warning: [-Wnoncanonical-monoid-instances]
    Noncanonical ‘(<>) = mappend’ definition detected
    in the instance declaration for ‘Semigroup (ExtraInfo a)’.
    Move definition from ‘mappend’ to ‘(<>)’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/semigroup-monoid
    |
211 |     (<>) = mappend
    |     ^^^^^^^^^^^^^^

src/Servant/Docs/Internal.hs:214:5: warning: [-Wnoncanonical-monoid-instances]
    Noncanonical ‘mappend’ definition detected
    in the instance declaration for ‘Monoid (ExtraInfo a)’.
    ‘mappend’ will eventually be removed in favour of ‘(<>)’
    Either remove definition for ‘mappend’ (recommended) or define as ‘mappend = (<>)’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/semigroup-monoid
    |
214 |     ExtraInfo a `mappend` ExtraInfo b =
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

src/Servant/Docs/Internal.hs:968:47: warning: [-Wunused-record-wildcards]
    No variables bound in the record wildcard match are used
      Possible fix: omit the ‘..’
    |
968 |   docsFor Proxy (endpoint, action) DocOptions{..} =
    |                                               ^^

src/Servant/Docs/Internal.hs:986:47: warning: [-Wunused-record-wildcards]
    No variables bound in the record wildcard match are used
      Possible fix: omit the ‘..’
    |
986 |   docsFor Proxy (endpoint, action) DocOptions{..} =
    |                                               ^^

test/Servant/ForeignSpec.hs:85:7: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a pattern binding:
        Patterns of type ‘[Req String]’ not matched:
            []
            [_]
            [_, _]
            [_, _, _]
            ...
   |
85 |   let [getReq, postReq, putReq, deleteReq, captureAllReq] = testApi
   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/JS/Vanilla.hs:12:1: warning: [-Wdodgy-imports]
    Module ‘Servant.Foreign’ does not export ‘header’
   |
12 | import           Servant.Foreign hiding (header)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Docs.lhs:268:17: warning: [-Wname-shadowing]
    This binding for ‘respond’ shadows the existing binding
      imported from ‘Servant.Server’ at Docs.lhs:25:1-21
      (and originally defined in ‘Servant.Server.UVerb’)
    |
268 |     serveDocs _ respond =
    |                 ^^^^^^^

src/Servant/Auth.hs:16:22: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
16 | data Auth (auths :: [*]) val
   |                      ^

src/Servant/Auth.hs:19:48: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
19 | instance HasLink sub => HasLink (Auth (tag :: [*]) value :> sub) where
   |                                                ^

src/Servant/Auth.hs:21:30: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
21 |   type MkLink (Auth (tag :: [*]) value :> sub) a = MkLink sub a
   |                              ^

src/Servant/Auth/JWT.hs:27:44: warning: [-Wdeprecations]
    In the use of ‘unregisteredClaims’ (imported from Crypto.JWT):
    Deprecated: "use a sub-type"
   |
27 |   decodeJWT m = case KM.lookup "dat" (m ^. Jose.unregisteredClaims) of
   |                                            ^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/JWT.hs:40:17: warning: [-Wdeprecations]
    In the use of ‘addClaim’ (imported from Crypto.JWT):
    Deprecated: "'unregisteredClaims' is deprecated; use a sub-type"
   |
40 |   encodeJWT a = Jose.addClaim "dat" (toJSON a) Jose.emptyClaimsSet
   |                 ^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/AddSetCookie.hs:10:1: warning: [-Wunused-imports]
    The import of ‘Data.Tagged’ is redundant
      except perhaps to import instances from ‘Data.Tagged’
    To import instances alone, use: import Data.Tagged()
   |
10 | import           Data.Tagged              (Tagged (..))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/AddSetCookie.hs:14:1: warning: [-Wunused-imports]
    The import of ‘Servant.API.UVerb.Union’ is redundant
      except perhaps to import instances from ‘Servant.API.UVerb.Union’
    To import instances alone, use: import Servant.API.UVerb.Union()
   |
14 | import           Servant.API.UVerb.Union
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/AddSetCookie.hs:38:44: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
38 | type family MapAddSetCookieApiVerb (as :: [*]) where
   |                                            ^

src/Servant/Auth/Server/Internal/AddSetCookie.hs:43:34: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
43 | type family AddSetCookieApi a :: *
   |                                  ^

src/Servant/Auth/Server/Internal/AddSetCookie.hs:62:34: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
62 | data SetCookieList (n :: Nat) :: * where
   |                                  ^

src/Servant/Auth/Server/Internal/AddSetCookie.hs:103:35: warning: [-Wname-shadowing]
    This binding for ‘respond’ shadows the existing binding
      imported from ‘Servant’ at src/Servant/Auth/Server/Internal/AddSetCookie.hs:13:1-24
      (and originally defined in ‘Servant.Server.UVerb’)
    |
103 |   addSetCookies cookies r request respond
    |                                   ^^^^^^^

src/Servant/Auth/Server/Internal/AddSetCookie.hs:109:47: warning: [-Wname-shadowing]
    This binding for ‘respond’ shadows the existing binding
      imported from ‘Servant’ at src/Servant/Auth/Server/Internal/AddSetCookie.hs:13:1-24
      (and originally defined in ‘Servant.Server.UVerb’)
    |
109 |   addSetCookies cookies r = Tagged $ \request respond ->
    |                                               ^^^^^^^
Configuring servant-auth-docs-0.2.10.0...

src/Servant/Auth/Client/Internal.hs:11:1: warning: [-Wunused-imports]
    The import of ‘Data.Monoid’ is redundant
      except perhaps to import instances from ‘Data.Monoid’
    To import instances alone, use: import Data.Monoid()
   |
11 | import           Data.Monoid
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/ThrowAll.hs:10:1: warning: [-Wunused-imports]
    The import of ‘Data.Tagged’ is redundant
      except perhaps to import instances from ‘Data.Tagged’
    To import instances alone, use: import Data.Tagged()
   |
10 | import Data.Tagged               (Tagged (..))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/ThrowAll.hs:11:1: warning: [-Wunused-imports]
    The import of ‘NamedRoutes, ServerError’
    from module ‘Servant’ is redundant
   |
11 | import Servant                   ((:<|>) (..), ServerError(..), NamedRoutes(..))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/ThrowAll.hs:11:1: warning: [-Wdodgy-imports]
    The import item ‘NamedRoutes(..)’ suggests that
    ‘NamedRoutes’ has (in-scope) constructors or class methods,
    but it has none
   |
11 | import Servant                   ((:<|>) (..), ServerError(..), NamedRoutes(..))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/ThrowAll.hs:48:19: warning: [-Wname-shadowing]
    This binding for ‘respond’ shadows the existing binding
      imported from ‘Servant.Server’ at src/Servant/Auth/Server/Internal/ThrowAll.hs:14:1-21
      (and originally defined in ‘Servant.Server.UVerb’)
   |
48 |   throwAll e _req respond
   |                   ^^^^^^^

src/Servant/Auth/Server/Internal/ThrowAll.hs:55:31: warning: [-Wname-shadowing]
    This binding for ‘respond’ shadows the existing binding
      imported from ‘Servant.Server’ at src/Servant/Auth/Server/Internal/ThrowAll.hs:14:1-21
      (and originally defined in ‘Servant.Server.UVerb’)
   |
55 |   throwAll e = Tagged $ \_req respond ->
   |                               ^^^^^^^

src/Servant/Auth/Server/Internal/Types.hs:5:1: warning: [-Wunused-imports]
    The import of ‘Control.Monad’ is redundant
      except perhaps to import instances from ‘Control.Monad’
    To import instances alone, use: import Control.Monad()
  |
5 | import Control.Monad        (MonadPlus(..), ap)
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Types.hs:8:1: warning: [-Wunused-imports]
    The import of ‘Data.Monoid’ is redundant
      except perhaps to import instances from ‘Data.Monoid’
    To import instances alone, use: import Data.Monoid()
  |
8 | import Data.Monoid          (Monoid (..))
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Types.hs:9:1: warning: [-Wunused-imports]
    The import of ‘Data.Semigroup’ is redundant
      except perhaps to import instances from ‘Data.Semigroup’
    To import instances alone, use: import Data.Semigroup()
  |
9 | import Data.Semigroup       (Semigroup (..))
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Types.hs:38:3: warning: [-Wnoncanonical-monad-instances]
    Noncanonical ‘pure = return’ definition detected
    in the instance declaration for ‘Applicative AuthResult’.
    Move definition from ‘return’ to ‘pure’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
   |
38 |   pure = return
   |   ^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Types.hs:42:3: warning: [-Wnoncanonical-monad-instances]
    Noncanonical ‘return’ definition detected
    in the instance declaration for ‘Monad AuthResult’.
    ‘return’ will eventually be removed in favour of ‘pure’
    Either remove definition for ‘return’ (recommended) or define as ‘return = pure’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
   |
42 |   return = Authenticated
   |   ^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Types.hs:77:3: warning: [-Wnoncanonical-monad-instances]
    Noncanonical ‘pure = return’ definition detected
    in the instance declaration for ‘Applicative AuthCheck’.
    Move definition from ‘return’ to ‘pure’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
   |
77 |   pure = return
   |   ^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Types.hs:81:3: warning: [-Wnoncanonical-monad-instances]
    Noncanonical ‘return’ definition detected
    in the instance declaration for ‘Monad AuthCheck’.
    ‘return’ will eventually be removed in favour of ‘pure’
    Either remove definition for ‘return’ (recommended) or define as ‘return = pure’
    See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
   |
81 |   return = AuthCheck . return . return . return
   |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/JWT.hs:4:1: warning: [-Wunused-imports]
    The import of ‘Control.Monad’ is redundant
      except perhaps to import instances from ‘Control.Monad’
    To import instances alone, use: import Control.Monad()
  |
4 | import           Control.Monad (MonadPlus(..), guard)
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Cookie.hs:5:1: warning: [-Wunused-imports]
    The import of ‘Control.Monad’ is redundant
      except perhaps to import instances from ‘Control.Monad’
    To import instances alone, use: import Control.Monad()
  |
5 | import           Control.Monad (MonadPlus(..), guard)
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Cookie.hs:8:1: warning: [-Wunused-imports]
    The qualified import of ‘Crypto.JOSE’ is redundant
      except perhaps to import instances from ‘Crypto.JOSE’
    To import instances alone, use: import Crypto.JOSE()
  |
8 | import qualified Crypto.JOSE              as Jose
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Cookie.hs:9:1: warning: [-Wunused-imports]
    The qualified import of ‘Crypto.JWT’ is redundant
      except perhaps to import instances from ‘Crypto.JWT’
    To import instances alone, use: import Crypto.JWT()
  |
9 | import qualified Crypto.JWT               as Jose
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Cookie.hs:25:1: warning: [-Wunused-imports]
    The import of ‘decodeJWT’
    from module ‘Servant.Auth.JWT’ is redundant
   |
25 | import Servant.Auth.JWT                          (FromJWT (decodeJWT), ToJWT)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Class.hs:5:1: warning: [-Wunused-imports]
    The import of ‘Data.Monoid’ is redundant
      except perhaps to import instances from ‘Data.Monoid’
    To import instances alone, use: import Data.Monoid()
  |
5 | import Data.Monoid
  | ^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Server/Internal/Class.hs:19:30: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
19 |   type family AuthArgs a :: [*]
   |                              ^

src/Servant/Auth/Server/Internal/Class.hs:36:24: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
36 | class AreAuths (as :: [*]) (ctxs :: [*]) v where
   |                        ^

src/Servant/Auth/Server/Internal/Class.hs:36:38: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
36 | class AreAuths (as :: [*]) (ctxs :: [*]) v where
   |                                      ^

src/Servant/Auth/Server/Internal.hs:18:1: warning: [-Wunused-imports]
    The import of ‘Servant.Auth.Server.Internal.JWT’ is redundant
      except perhaps to import instances from ‘Servant.Auth.Server.Internal.JWT’
    To import instances alone, use: import Servant.Auth.Server.Internal.JWT()
   |
18 | import Servant.Auth.Server.Internal.JWT
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Docs.hs:37:1: warning: [-Wunused-imports]
    The import of ‘Data.Monoid’ is redundant
      except perhaps to import instances from ‘Data.Monoid’
    To import instances alone, use: import Data.Monoid()
   |
37 | import Data.Monoid
   | ^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Docs.hs:42:1: warning: [-Wunused-imports]
    The import of ‘Servant.Docs.Internal’ is redundant
      except perhaps to import instances from ‘Servant.Docs.Internal’
    To import instances alone, use: import Servant.Docs.Internal()
   |
42 | import Servant.Docs.Internal (DocAuthentication (..), authInfo)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Auth/Docs.hs:66:22: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
66 | class AllDocs (x :: [*]) where
   |                      ^

README.lhs:40:22: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
40 | data Auth (auths :: [*]) val
   |                      ^

HoistServerWithContext.lhs:37:1: warning: [-Wunused-imports]
    The import of ‘Control.Monad.IO.Class’ is redundant
      except perhaps to import instances from ‘Control.Monad.IO.Class’
    To import instances alone, use: import Control.Monad.IO.Class()
   |
37 | import Control.Monad.IO.Class (liftIO)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

HoistServerWithContext.lhs:125:1: warning: [-Wunused-top-binds]
    Defined but not used: ‘sampleHandler’
    |
125 | sampleHandler = do
    | ^^^^^^^^^^^^^

HoistServerWithContext.lhs:260:1: warning: [-Woverlapping-patterns]
    Pattern match is redundant
    In an equation for ‘loginHandler’: loginHandler _ _ _ = ...
    |
260 | loginHandler _ _ _ = throwError err401
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ClientSpec.hs:45:1: warning: [-Wdeprecations]
    Module ‘Servant.Auth.Server.SetCookieOrphan’ is deprecated:
      "instance exists in http-api-data-0.3.9. This module will be removed in next major release."
   |
45 | import Servant.Auth.Server.SetCookieOrphan ()
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ServerSpec.hs:31:1: warning: [-Wunused-imports]
    The import of ‘Data.Monoid’ is redundant
      except perhaps to import instances from ‘Data.Monoid’
    To import instances alone, use: import Data.Monoid()
   |
31 | import           Data.Monoid
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ServerSpec.hs:33:1: warning: [-Wunused-imports]
    The import of ‘Data.Time.Clock’ is redundant
      except perhaps to import instances from ‘Data.Time.Clock’
    To import instances alone, use: import Data.Time.Clock()
   |
33 | import           Data.Time.Clock                     (getCurrentTime)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ServerSpec.hs:53:1: warning: [-Wdodgy-imports]
    Module ‘Servant’ does not export ‘header’
   |
53 | import           Servant                             hiding (BasicAuth,
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

test/Servant/Auth/ServerSpec.hs:55:1: warning: [-Wunused-imports]
    The import of ‘Servant.API.Generic’ is redundant
      except perhaps to import instances from ‘Servant.API.Generic’
    To import instances alone, use: import Servant.API.Generic()
   |
55 | import           Servant.API.Generic                 ((:-))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ServerSpec.hs:57:1: warning: [-Wunused-imports]
    The import of ‘Servant.Auth.Server.Internal.Cookie’ is redundant
      except perhaps to import instances from ‘Servant.Auth.Server.Internal.Cookie’
    To import instances alone, use: import Servant.Auth.Server.Internal.Cookie()
   |
57 | import           Servant.Auth.Server.Internal.Cookie (expireTime)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ServerSpec.hs:58:1: warning: [-Wdeprecations]
    Module ‘Servant.Auth.Server.SetCookieOrphan’ is deprecated:
      "instance exists in http-api-data-0.3.9. This module will be removed in next major release."
   |
58 | import           Servant.Auth.Server.SetCookieOrphan ()
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ServerSpec.hs:132:11: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a pattern binding:
        Patterns of type ‘[HCli.CookieJar]’ not matched: []
    |
132 |       let (cookieJar:_) = resp ^.. responseCookieJar
    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ServerSpec.hs:133:11: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a pattern binding:
        Patterns of type ‘Maybe HCli.Cookie’ not matched: Nothing
    |
133 |           Just xxsrf = find (\x -> cookie_name x == xsrfField xsrfCookieName cookieCfg)
    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

test/Servant/Auth/ServerSpec.hs:148:11: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a pattern binding:
        Patterns of type ‘[HCli.CookieJar]’ not matched: []
    |
148 |       let (cookieJar:_) = resp ^.. responseCookieJar
    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ServerSpec.hs:149:11: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a pattern binding:
        Patterns of type ‘Maybe HCli.Cookie’ not matched: Nothing
    |
149 |           Just xxsrf = find (\x -> cookie_name x == xsrfField xsrfCookieName cookieCfg)
    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

test/Servant/Auth/ServerSpec.hs:160:11: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a pattern binding:
        Patterns of type ‘[HCli.CookieJar]’ not matched: []
    |
160 |       let (cookieJar:_) = resp ^.. responseCookieJar
    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ServerSpec.hs:161:11: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a pattern binding:
        Patterns of type ‘Maybe HCli.Cookie’ not matched: Nothing
    |
161 |           Just token = find (\x -> cookie_name x == sessionCookieName cookieCfg)
    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

test/Servant/Auth/ServerSpec.hs:199:11: warning: [-Wname-shadowing]
    This binding for ‘resp’ shadows the existing binding
      bound at test/Servant/Auth/ServerSpec.hs:190:11
    |
199 |           resp <- getWith opts (url port ++ "/uverb")
    |           ^^^^

test/Servant/Auth/ServerSpec.hs:217:21: warning: [-Wincomplete-uni-patterns]
    Pattern match(es) are non-exhaustive
    In a pattern binding:
        Patterns of type ‘Maybe BS.ByteString’ not matched: Nothing
    |
217 |                     Just xsrfCookieValue = cookie_value <$> find (\c -> cookie_name c == xsrfField xsrfCookieName cookieCfg) (destroyCookieJar jar)
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

test/Servant/Auth/ServerSpec.hs:229:11: warning: [-Wname-shadowing]
    This binding for ‘resp’ shadows the existing binding
      bound at test/Servant/Auth/ServerSpec.hs:222:11
    |
229 |           resp <- getWith loggedInOpts (url port)
    |           ^^^^

test/Servant/Auth/ServerSpec.hs:233:11: warning: [-Wname-shadowing]
    This binding for ‘resp’ shadows the existing binding
      bound at test/Servant/Auth/ServerSpec.hs:229:11
    |
233 |           resp <- getWith loggedInOpts (url port ++ "/logout")
    |           ^^^^

test/Servant/Auth/ServerSpec.hs:291:11: warning: [-Wname-shadowing]
    This binding for ‘resp’ shadows the existing binding
      bound at test/Servant/Auth/ServerSpec.hs:284:11
    |
291 |           resp <- getWith (loggedInOpts) (url port)
    |           ^^^^

test/Servant/Auth/ServerSpec.hs:294:11: warning: [-Wname-shadowing]
    This binding for ‘resp’ shadows the existing binding
      bound at test/Servant/Auth/ServerSpec.hs:291:11
    |
294 |           resp <- getWith loggedInOpts (url port ++ "/logout")
    |           ^^^^

test/Servant/Auth/ServerSpec.hs:511:21: warning: [-Wunused-matches]
    Defined but not used: ‘usr’
    |
511 |       Authenticated usr -> respond (WithStatus @200 (42 :: Int))
    |                     ^^^

test/Servant/Auth/ServerSpec.hs:544:13: warning: [-Wname-shadowing]
    This binding for ‘respond’ shadows the existing binding
      imported from ‘Servant’ at test/Servant/Auth/ServerSpec.hs:(53,1)-(54,76)
      (and originally defined in ‘Servant.Server.UVerb’)
    |
544 |       \_req respond ->
    |             ^^^^^^^

test/Servant/Auth/ServerSpec.hs:609:31: warning: [-Wdeprecations]
    In the use of ‘unregisteredClaims’ (imported from Crypto.JWT):
    Deprecated: "use a sub-type"
    |
609 | claims val = emptyClaimsSet & unregisteredClaims . at "dat" .~ Just val
    |                               ^^^^^^^^^^^^^^^^^^

src/Servant/Swagger/Internal/TypeLevel/API.hs:78:34: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
78 | type family BodyTypes' c api :: [*] where
   |                                  ^

src/Servant/Swagger/Internal.hs:41:1: warning: [-Wunused-imports]
    The import of ‘Servant.API.Generic’ is redundant
      except perhaps to import instances from ‘Servant.API.Generic’
    To import instances alone, use: import Servant.API.Generic()
   |
41 | import           Servant.API.Generic                    (ToServantApi, AsApi)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

src/Servant/Swagger/Internal/TypeLevel/Every.hs:51:37: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
51 | class EveryTF cs x => Every (cs :: [* -> Constraint]) (x :: *) where
   |                                     ^

src/Servant/Swagger/Internal/TypeLevel/Every.hs:51:61: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
51 | class EveryTF cs x => Every (cs :: [* -> Constraint]) (x :: *) where
   |                                                             ^

src/Servant/Auth/Swagger.hs:69:29: warning: [-Wstar-is-type]
    Using ‘*’ (or its Unicode variant) to mean ‘Data.Kind.Type’
    relies on the StarIsType extension, which will become
    deprecated in the future.
    Suggested fix: Use ‘Type’ from ‘Data.Kind’ instead.
   |
69 | class AllHasSecurity (x :: [*]) where
   |                             ^

test/Servant/Auth/SwaggerSpec.hs:8:1: warning: [-Wunused-imports]
    The import of ‘Servant.Auth.Swagger’ is redundant
      except perhaps to import instances from ‘Servant.Auth.Swagger’
    To import instances alone, use: import Servant.Auth.Swagger()
  |
8 | import Servant.Auth.Swagger
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
ysangkok commented 1 year ago

Sure, I would merge PRs that fix warnings. I would prefer them to be submitted one-by-one such that each PR only fixes one type of error. Because I think there could be differing opinions on how to fix some of them. Looking at #1564, it is a bit hard to rebase, and if it had been done in the style I mention, parts of it would probably have been merged already.

I think it would make sense to start with the * to Type replacement, since that seems to be the most verbose warning.

EarlPitts commented 9 months ago

Hello! I've created a PR #1710 that fixes the warnings related to the */Type stuff.