Atypical data constructors

We’ve been giving a lot of thought lately to how to present some of the more exotic language extensions – like GADTs, type families, and rank-N types – and we’ve decided to start by focusing not on the individual extensions one at a time, but rather with the more broad aim of “getting a more sophisticated understanding of the type system.” We still plan to make a reference page for each extension, but the more important place to start if you’re entirely unfamiliar with these features will be the new atypical data constructors series. It begins with a lesson on type equality constraints, which will then lead naturally into understanding what GADTs are and what they’re useful for.