Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {-# LANGUAGE GADTs #-}
- module Main where
- data PR t a = PR (Maybe ([t], a))
- data P t a = P ([t] -> PR t a)
- a :: P Char (T A)
- a = undefined
- b :: P Char (T B)
- b = undefined
- data A = A
- data B = B
- data E = E String
- data T a where
- A' :: T A
- B' :: T B
- E' :: E -> T E
- type H t = [Char] -> (t, [Char])
- type TT t = [Char] -> [t]
- tt :: H t -> [P Char t] -> TT t
- tt = undefined
- h :: H (T a)
- h [] = (E' (E "E"), [])
- h (head:rest) = (E' (E ("E")), rest)
- tt' :: [Char] -> [T a]
- tt' = tt h [a, b]
- main :: IO ()
- main = putStrLn "Hello"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement