Wiki на Haskell GADT для чайников - лучшее объяснение, которое я видел.
Проблема, с которой я (и я подозреваю других) в большинстве представлений, состоит в том, что они показывают примеры GADT с точки зрения синтаксиса, который неочевиден , пока вы не поймете GADT . Это делает простейшие примеры, на которых все построено, особенно сложным для полного понимания - вы можете догадаться о том, что делают многие шаблоны, но понять точную роль каждого утверждения сложно.
Пост "для чайников" анализирует и наращивает смысл синтаксиса на пути объяснения его собственных базовых примеров, что делает его гораздо более полезной отправной точкой. Я очень рекомендую это.