summaryrefslogtreecommitdiff
path: root/testsuite/tests/unboxedsums/empty_sum.hs
blob: 7abbfd87a901b254157131f7751bfaf31cecc07d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{-# LANGUAGE UnboxedTuples, UnboxedSums, MagicHash #-}

module Main where

type Null = (# #)

{-# NOINLINE showNull #-}
showNull :: Null -> String
showNull (# #) = "(# #)"

{-# NOINLINE showNullAlt #-}
showNullAlt :: (# Null | Null #) -> String
showNullAlt (# n1 | #) = "(# " ++ showNull n1 ++ " | #)"
showNullAlt (# | n2 #) = "(# | " ++ showNull n2 ++ " #)"

main :: IO ()
main = do
    putStrLn (showNull (# #))
    putStrLn (showNullAlt (# (# #) | #))
    putStrLn (showNullAlt (# | (# #) #))