Bir alıştırma olarak, aşağıdaki GADT'yi kullanarak Haskell'de tanımlanan son derece basit bir dil için bir ayrıştırıcı uygulayacağım (projem için gerçek dilbilgisi birçok ifadeyi içerir, ancak bu özüt
ben Boole ifadeleri bir özyinelemeli iniş ayrıştırıcı yazıyorum tarafından boolean ifadeler, içinde: 1 'True' olduğunu (1 * 0)
(0 + ~1)
(0 * (1 + c)
, 0 ' 'Yanlış' olduğunu + olduğu ya da ',' is '