Excellent video explaining GADTs in Haskell | Hacker News Reader