Guest User

Untitled

a guest
Jun 23rd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.28 KB | None | 0 0
  1. {-# LANGUAGE TypeOperators, GADTs, Strict #-}
  2.  
  3. module Main where
  4.  
  5. data (:+:) f g a = Inl !(f a) | Inr !(g a)
  6.  
  7. data A
  8. data B
  9.  
  10. data Foo l where
  11. Foo :: Foo A
  12.  
  13. data Bar l where
  14. Bar :: Bar B
  15.  
  16. type Sig = Foo :+: Bar
  17.  
  18. fun :: Sig B -> Int
  19. fun (Inr Bar) = 1
  20.  
  21. main :: IO ()
  22. main = return ()
Add Comment
Please, Sign In to add comment