main :: IO ()
main = do
  let partialAf = Programmer {os = GnuPlusLinux}
  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)