main :: IO () main = do let partialAf = (Programmer {os = GnuPlusLinux}) :: Programmer print 123 print partialAf data Programmer = Programmer { os :: OperatingSystem , lang :: ProgLang } deriving (Eq, Show) data OperatingSystem = GnuPlusLinux | MsDos deriving (Eq, Show) data ProgLang = Cpp | Basic deriving (Eq, Show)