November 09, 2016
In this introspective talk we will take a look at Servant, a DSL in Haskell, that allows its users to specify the entirety of a web API in the type system. We'll see how Servant leverages values as types in order to generate clients in various languages, derive a mock server, and generate type-checked documentation - all without having to implement the API itself. We'll analyze the consequences of treating values as types and see what we can learn and hopefully bring back to the JVM.