summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/T12478_2.hs
blob: bb0a73ba0fe14e2929b62b2dac647da6e7aab90e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE UnboxedSums #-}
-- Essentially the same as TH_repUnboxedTuples, but for unboxed sums
module Main where

import Language.Haskell.TH

main :: IO ()
main = case bar () of
       (# a |   #) -> print a
       (#   | b #) -> print b

bar :: () -> (# String | Int #)
bar () = $( do e <- [| case (# 'b' | #) of
                        (# 'a' |   #) -> (# "One"   |   #)
                        (# 'b' |   #) -> (#         | 2 #)
                        (# _   |   #) -> (# "Three" |   #)
                        (#     | _ #) -> (#         | 4 #)
                     |]
               return e )