argon-0.3.2.0: test/data/datakinds.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE GADTs #-}
data JobDescription = JobOne
| JobTwo
| JobThree
deriving (Show, Eq)
data SJobDescription :: JobDescription -> * where
SJobOne :: { jobOneN :: Int } -> SJobDescription JobOne
SJobTwo :: SJobDescription JobTwo
SJobThree :: { jobThreeN :: Int } -> SJobDescription JobThree
taskOneWorker :: SJobDescription JobOne -> IO ()
taskOneWorker t = do
putStrLn $ "Job: " ++ (show $ jobOneN t)
main :: IO ()
main = taskOneWorker (SJobOne 10)