summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/TH_repUnboxedTuples.hs
blob: 30b6a5e2a84d7f7f3ba6e99db11c666656d29fb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{-# LANGUAGE TemplateHaskell, UnboxedTuples #-}
-- test the representation of unboxed tuples

module Main where

import GHC.Exts
import GHC.Float
import Language.Haskell.TH
import Text.PrettyPrint
import System.IO

main :: IO ()
main = case bar () of
       (# str, int #) ->
           print (str, int)

bar :: () -> (# String, Int #)
bar () = $( do e <- [| case (# 'b', False #) of
                       (# 'a', True  #) -> (# "One", 1 #)
                       (# 'b', False #) -> (# "Two", 2 #)
                       (# _,   _     #) -> (# "Three", 3 #)
                     |]
               runIO $ putStrLn $ show e
               runIO $ putStrLn $ pprint e
               runIO $ hFlush stdout
               return e )