@@ -10,15 +10,58 @@
10 independent of the `http-client` backend.
10 independent of the `http-client` backend.
11 ([#803](https://github.com/haskell-servant/servant/pull/803)
11 ([#803](https://github.com/haskell-servant/servant/pull/803)
12 [#821](https://github.com/haskell-servant/servant/issues/821))
12 [#821](https://github.com/haskell-servant/servant/issues/821))
14+ If you have own combinators, you'll need to add an additional `m` argument
15+ in `HasClient`, `Client` and `clientWithRoute`:
19+ - type Client (api :: *) :: *
20+ - clientWithRoute :: Proxy api -> Req -> Client api
21+ +class HasClient m api
22+ + type Client (m :: * -> *) (api :: *) :: *
23+ + clientWithRoute :: Proxy m -> Proxy api -> Request -> Client m api
26+ See https://github.com/haskell-servant/servant-auth/pull/67/commits/f777818e3cc0fa3ed2346baff8328e96d62b1790 for a real world example.
13- *servant-server* Added `hoistServer` member to the `HasServer` class, which is `HasServer`
28- *servant-server* Added `hoistServer` member to the `HasServer` class, which is `HasServer`
14 specific `enter`.
29 specific `enter`.
15 ([#804](https://github.com/haskell-servant/servant/pull/804)
30 ([#804](https://github.com/haskell-servant/servant/pull/804)
16 [#824](https://github.com/haskell-servant/servant/pull/824))
31 [#824](https://github.com/haskell-servant/servant/pull/824))
33+ `enter` isn't exported from `Servant` module anymore. You can change
34+ `enter` to `hoistServer` in a straight forward way.
35+ Unwrap natural transformation and add a api type `Proxy`:
38+ -server = enter (NT nt) impl
39+ +server = hoistServer (Proxy :: Proxy MyApi) nt impl
42+ If you have own combinators, you'll need to define a new method of
43+ `HasServer` class, for example:
46+ type ServerT (MyCombinator :> api) m = MyValue -> ServerT api m
47+ hoistServerWithContext _ pc nt s = hoistServerWithContext (Proxy :: Proxy api) pc nt . s
50+ See https://github.com/haskell-servant/servant-auth/pull/67/commits/8ee3b6315247ac076516213fd7cfcdbfdb583ac9 for a real world example.
17- Add `Description` and `Summary` combinators
52- Add `Description` and `Summary` combinators
18 ([#767](https://github.com/haskell-servant/servant/pull/767))
53 ([#767](https://github.com/haskell-servant/servant/pull/767))
55+ It's possible to annotate endpoints with free form text.
56+ This information is used by e.g. by `servant-swagger`, see screenshot in
57+ https://github.com/phadej/servant-swagger-ui
19- Lower `:>` and `:<|>` infix precedence to 4 and 3 respectively
59- Lower `:>` and `:<|>` infix precedence to 4 and 3 respectively
20 ([#761](https://github.com/haskell-servant/servant/issues/761))
60 ([#761](https://github.com/haskell-servant/servant/issues/761))
62+ This should affect you, except if you define your own infix operators
63+ for Servant type-level DSL.
22### Other changes
65### Other changes
24- *servant-foreign* Derive `Data` for all types
67- *servant-foreign* Derive `Data` for all types