singletons-2.5.1: tests/compile-and-dump/Singletons/T371.hs
module T371 where
import Data.Kind
import Data.Singletons.TH
$(singletons [d|
data X (a :: Type) = X1 | X2 (Y a) deriving Show
data Y (a :: Type) = Y1 | Y2 (X a) deriving Show
|])
main :: IO ()
main = do
print (sing :: Sing ('[] :: [Bool]))
print (sing :: Sing '[True])
print (sing :: Sing (X1 :: X Bool))
print (sing :: Sing (Y2 X1 :: Y Bool))