Update Trac ticket URLs to point to GitLab
[ghc.git] / testsuite / tests / unboxedsums / unboxedsums3.hs
1 {-# LANGUAGE UnboxedSums, MagicHash, BangPatterns, UnboxedTuples #-}
2
3 module Main where
4
5 import GHC.Prim
6 import GHC.Types
7
8 import Data.Void (Void)
9 import System.Mem (performMajorGC)
10
11 showAlt0 :: (# Void# | (# #) | () #) -> String
12 showAlt0 (# | (# #) | #) = "(# | (# #) | #)"
13 showAlt0 (# | | () #) = "(# | | () #)"
14
15 showAlt1 :: (# Void | Float# #) -> String
16 showAlt1 (# _ | #) = "(# Void | #)"
17 showAlt1 (# | f #) = "(# | " ++ show (F# f) ++ "# #)"
18
19 data D = D { f1 :: (# Void# | (# #) | () #)
20 , f2 :: (# Void | Float# #)
21 }
22
23 showD :: D -> String
24 showD (D f1 f2) = showAlt0 f1 ++ "\n" ++ showAlt1 f2
25
26 main :: IO ()
27 main = do
28 putStrLn (showAlt0 (# | (# #) | #))
29 putStrLn (showAlt0 (# | | () #))
30 putStrLn (showAlt1 (# undefined | #))
31 putStrLn (showAlt1 (# | 8.1# #))
32 putStrLn (showD (D (# | (# #) | #) (# | 1.2# #)))
33 performMajorGC