ghc-exactprint-1.9.0.0: tests/examples/pre-ghc910/GADT.hs
{-# LANGUAGE RankNTypes #-}
data Empty
data NonEmpty
data SafeList x y where
Nil :: SafeList x Empty
Cons:: Eq x => x -> SafeList x y -> SafeList x NonEmpty
One :: Eq x => x -> SafeList x Empty -> SafeList x NonEmpty
safeHead :: SafeList x NonEmpty -> x
safeHead (Cons x _) = x
foo = Cons 3 (Cons 6 (Cons 9 Nil))
data Dict x where
DictN :: Num x => x -> Dict x
DictE :: Eq x => x -> Dict x
data Exist where
Exist :: forall a. a -> Exist