Haskell toy GADT examples