1{-# LANGUAGE GADTs #-} 2 3data GADT a where 4 GADT :: 5 { blah :: Int 6 , bar :: a 7 } -> GADT a 8 Bar :: 9 { zoo :: Bool 10 , baxter :: a 11 , another :: a 12 } -> GADT Bool 13 Baz :: GADT Int 14 15 16split :: GADT Bool -> a 17split x = _ 18 19