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 )
|