data Constant = IntConstant Int | StringConstant String instance Show Constant where show (IntConstant i) = "int(" ++ show i ++ ")" show (StringConstant s) = "string(" ++ show s ++ ")" main :: IO () main = do putStrLn $ show $ IntConstant 1337 putStrLn $ show $ StringConstant "Hello, world!"