Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- class HasClient m api => HasClientAlgebra m api where
- joinClient :: m (Client m api) -> Client m api
- bindClient :: m a -> (a -> Client m api) -> Client m api
Documentation
class HasClient m api => HasClientAlgebra m api where Source #
The type of a Servant client is always an algebra over the underlying
monad. Such an algebra structure can easily be constructed by induction over
the structure of the API. The base case is an API consisting of only a
response, in which case Client m api = m R
, where R
is the response
type, and m R
is always an algebra over m
.
Minimal definition: joinClient
| bindClient
.
Nothing
joinClient :: m (Client m api) -> Client m api Source #
bindClient :: m a -> (a -> Client m api) -> Client m api Source #
Instances
(HasClientAlgebra m api, KnownSymbol sym) => HasClientAlgebra m (sym :> api) Source # | |
Defined in Wire.API.Routes.ClientAlgebra | |
(HasClientAlgebra m api, HasClient m (ReqBody' mods (ct ': cts) a :> api)) => HasClientAlgebra m (ReqBody' mods (ct ': cts) a :> api) Source # | |
HasClient m (Verb method s cs a) => HasClientAlgebra m (Verb method s cs a) Source # | |
Defined in Wire.API.Routes.ClientAlgebra | |
(Monad m, AllMime cs, HasClient m (MultiVerb method cs as r)) => HasClientAlgebra m (MultiVerb method cs as r) Source # | |
Defined in Wire.API.Routes.ClientAlgebra |