One use is when you want an open sum type rather than a closed one. For example, you might want users of your library to add their own 'constructors'. Then, they serve a purpose similar to a constructor that takes no arguments:{-# LANGUAGE EmptyDataDecls #-}class Color a wherergb :: a -> (Int, Int, Int)data Reddata Greendata Blueinstance Color Red wherergb _ = (255, 0, 0)instance Color Green wherergb _ = (0, 255, 0)instance Color Blue wherergb _ = (0, 0, 255)data ColorADT = Color_Red | Color_Green | Color_Bluergb_adt Color_Red = (255, 0, 0)rgb_adt Color_Green = (0, 255, 0)rgb_adt Color_Blue = (0, 0, 255)On Fri, Aug 12, 2016 at 8:16 AM, James Brown <james.brown5374@gmail.com> wrote:What's the purpose to allow data declarations with no constructors?On Fri, Aug 12, 2016 at 11:08 AM, Sergey N. Yashin <yashin.sergey@gmail.com> wrote:For zero data constructors you need to use only EmptyDataDecls extension.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-caf e
Only members subscribed via the mailman list are allowed to post.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell- cafe
Only members subscribed via the mailman list are allowed to post.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.