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