1{-# LANGUAGE TemplateHaskell #-}
2{-# LANGUAGE UnboxedSums #-}
3module T12478_5 where
4
5import Language.Haskell.TH
6
7foo :: $(conT (unboxedSumTypeName 2) `appT` conT ''() `appT` conT ''())
8    -> $(conT (unboxedSumTypeName 2) `appT` conT ''() `appT` conT ''())
9foo $(conP (unboxedSumDataName 1 2) [conP '() []])
10  = $(conE (unboxedSumDataName 2 2) `appE` conE '())
11foo $(conP (unboxedSumDataName 2 2) [conP '() []])
12  = $(conE (unboxedSumDataName 2 2) `appE` conE '())
13
14foo2 :: (# () | () #)
15     -> $(conT (unboxedSumTypeName 2) `appT` conT ''() `appT` conT ''())
16foo2 (# () | #) = $(conE (unboxedSumDataName 2 2) `appE` conE '())
17foo2 $(conP (unboxedSumDataName 2 2) [conP '() []]) = (# | () #)
18
19