Ticket #15305: Main.hs

File Main.hs, 280 bytes (added by jkoppel, 16 months ago)
Line 
1{-# LANGUAGE TypeOperators, GADTs #-}
2
3module Main where
4
5
6
7
8data (:+:) f g a = Inl !(f a) | Inr !(g a)
9
10data A
11data B
12
13data Foo l where
14  Foo :: Foo A
15
16data Bar l where
17  Bar :: Bar B
18
19type Sig = Foo :+: Bar
20
21fun :: Sig B -> Int
22fun (Inr Bar) = 1
23
24main :: IO ()
25main = return ()