Haskell koan: Type-checked non-empty strings
Summary
This post explains a Haskell koan about creating a type-checked, non-empty string using GHC features like RequiredTypeArguments, type families, and UndecidableInstances. It covers the practical benefits of replacing TemplateHaskell splices to achieve ~10% faster builds in a data-heavy package, and discusses design trade-offs and possible extensions to type-level validation.