This is weird and confusing and the typescript stuff didn't help. The author seems to advocate a voodoo approach to Haskell, where you copy/paste code without understanding what it does. This is never a good idea. If you're in a Haskell shop, rank N types aren't that far "out there", and are maybe more easily explained in GADT syntax. The GHC manual also documents them, and including a link might have been enough.[1]<p>It seems to me that there are much more serious barriers than rank N types to getting a useful production service running in Haskell. I think I can understand rank N types. I would not, at the moment at least, trust myself to deploy a Haskell service in production.<p>Jordan, on the other hand, looks pretty cool. Data.Binary had something in the same spirit using Scrap Your Boilerplate generics (iirc), but it wasn't as flexible.<p>[1] <a href="https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/rank_polymorphism.html#extension-RankNTypes" rel="nofollow">https://downloads.haskell.org/ghc/latest/docs/html/users_gui...</a>