{-#LANGUAGE TemplateHaskell#-} -- | Tests stuff mostly by just compiling correctly import Language.Haskell.Meta ----- Testing names: -- Test that the unit constructor works $(either error return $ parseDecs "unit :: IO ()\nunit = return ()") -- Testing that the [] constructor works in types, $(either error return $ parseDecs "nilp :: [a] -> ([] a)\nnilp [] = []") $(either error return $ parseDecs "pair :: (,) Int Int\npair = (,) 1 2") -- Just to check that it works as intended main = do () <- unit [] <- return (nilp []) (1,2) <- return pair return ()