servant is a set of Haskell libraries for writing type-safe web
applications but also deriving clients (in Haskell and other languages) or
generating documentation for them, and more.

This is achieved by taking as input a description of the web API
as a Haskell type. Servant is then able to check that your server-side request
handlers indeed implement your web API faithfully, or to automatically derive
Haskell functions that can hit a web application that implements this API,
generate a Swagger description or code for client functions in some other
languages directly.