Verdict is a Haskell library that provides a way of reifying constraints on a type. It exposes a type-level DSL for constraints, and provides functions to verify that those constraints hold of a value, to represent those constraints as JSON schema, to deserialize values with validation, to deal with implications between constraints, and others. We will see how this provides us with a lightweight and practical (at the cost of some safety and runtime checks) contract system.
Julian Arni is a Haskell consultant. He is one of the authors of the servant library and the corresponding paper.