[Haskell-beginners] Record types with multiple constructors

Derek McLoughlin derek.mcloughlin at gmail.com
Sun Dec 7 09:37:11 UTC 2014


Hi,

Record types usually have a single constructor. I've even seen blog
posts that suggest that they must have a single constructor. However,
multiple constructors are allowed:

data Employee = RegularEmployee {
                                  name :: String
                             } |
                             Supervisor {
                                  name :: String,
                                  salesTarget :: Double
                             }
                             Manager {
                                  name :: String,
                                  salesTarget :: Double
                                  budget :: Double
                             }

I don't see this used much in Haskell code - either in explanatory
books/tutorials or in code I've examined on GitHub. Are there
drawbacks to using multiple constructors in this way?

Derek.


More information about the Beginners mailing list