Files
book-exercises/Haskell-book/11/Programmer.hs
2025-12-09 16:32:32 +01:00

41 lines
911 B
Haskell

module Programmer where
data OperatingSystem = GnuPlusLinux
| OpenBSDPlusNevermindJustBSDStill
| Mac
| Windows
deriving (Eq, Show)
data ProgLang = Haskell
| Agda
| Idris
| PureScript
deriving (Eq, Show)
data Programmer = Programmer { os :: OperatingSystem
, lang :: ProgLang }
deriving (Eq, Show)
allOperatingSystems :: [OperatingSystem]
allOperatingSystems =
[ GnuPlusLinux
, OpenBSDPlusNevermindJustBSDStill
, Mac
, Windows
]
allLanguages :: [ProgLang]
allLanguages =
[ Haskell
, Agda
, Idris
, PureScript
]
allProgrammers :: [Programmer]
allProgrammers = do
o <- allOperatingSystems
l <- allLanguages
return Programmer { os = o
, lang = l }