Absolutely! Any record fields not defined for all constructors become partial. The correct way would be to have each constructor take a distinct type (if they are indeed distinct). Unfortunately this isn't nearly as succinct, but it is much safer. - Lyndon On Sun, Dec 7, 2014 at 8:37 PM, Derek McLoughlin <derek.mcloughlin@gmail.com
wrote:
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. _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners