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

module Test12417 where

import GHC.Prim
import GHC.Types

import System.Mem (performMajorGC)

type Either1 a b = (# a | b #)

showEither1 :: (Show a, Show b) => Either1 a b -> String
showEither1 (# left | #)  = "Left " ++ show left
showEither1 (# | right #) = "Right " ++ show right

type T = (# Int | Bool | String | Char | Either Int Bool | Int# | Float# #)

showEither4 :: T -> String
showEither4 (# | b | | | | | #) = "Alt1: " ++ show b