Update Trac ticket URLs to point to GitLab
[ghc.git] / testsuite / tests / unboxedsums / unboxedsums8.hs
1 {-# LANGUAGE UnboxedSums, UnboxedTuples, MagicHash #-}
2
3 module Main where
4
5 import GHC.Prim
6 import GHC.Types
7
8 type Sum1 = (# (# Int#, Int #) | (# Int#, Int# #) | (# Int, Int# #) #)
9
10 {-# NOINLINE showSum1 #-}
11 showSum1 :: Sum1 -> String
12 showSum1 (# p1 | | #) = showP1 p1
13 showSum1 (# | p2 | #) = showP2 p2
14 showSum1 (# | | p3 #) = showP3 p3
15
16 {-# NOINLINE showP1 #-}
17 showP1 :: (# Int#, Int #) -> String
18 showP1 (# i1, i2 #) = show (I# i1) ++ show i2
19
20 {-# NOINLINE showP2 #-}
21 showP2 :: (# Int#, Int# #) -> String
22 showP2 (# i1, i2 #) = show (I# i1) ++ show (I# i2)
23
24 {-# NOINLINE showP3 #-}
25 showP3 :: (# Int, Int# #) -> String
26 showP3 (# i1, i2 #) = show i1 ++ show (I# i2)
27
28 main :: IO ()
29 main = do
30 putStrLn (showSum1 s1)
31 putStrLn (showSum1 s2)
32 putStrLn (showSum1 s3)
33 where
34 s1, s2, s3 :: Sum1
35 s1 = (# (# 123#, 456 #) | | #)
36 s2 = (# | (# 876#, 543# #) | #)
37 s3 = (# | | (# 123, 456# #) #)