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 GADT {blah, bar} = _w0
18split Bar {zoo, baxter, another} = _w1
19
20