This post is substantially directed to non Haskellers. Haskell frequently appears on hackernews, or /r/programming but the content is commonly evangelizing some aspect of functional programming, strong types, and purity.
I have been playing around with Nikita Volkov’s Refined library. Refined provides composable type level combinators for building smart constructors refining an existing type.
I have been using Haskell’s Servant library for the specification of a rather large API. There are over 100 or so endpoints, and some records with dozens of fields.
Most servant examples online are for older versions of servant and incompatible with the modern Haskell ecosystem. This post is built against stackage LTS 11.15, and servant 0.13. Certain aspects have been simplified, and certain things made incompatible.