[Haskell-cafe] an idea for modifiyng data/newtype syntax: use `::=` instead of `=`

Hilco Wijbenga hilco.wijbenga at gmail.com
Sat Aug 8 17:28:21 UTC 2015

On 8 August 2015 at 08:03, Daniel Trstenjak <daniel.trstenjak at gmail.com> wrote:
>> type Name = String
>> data Date = Date Int Int Int
> if we're at it ;), then please change it to:
>    alias Name = String
>    type Date = Date Int Int Int

I wholeheartedly agree with replacing the current "type" with "alias",
the current "type" is just flat out wrong: it does *not* create a
type. This should be very simple to do too: introduce "alias" as a new
keyword and deprecate "type". No existing code would be affected.

I'm on the fence about "type" instead of "data", though. "data"
clearly conveys the meaning that we are talking about data only, not
functions on that data (as in OOP). (Well, data constructors are
functions too.) Then again, as soon as you add "deriving", you *are*
defining functions on that data.

More information about the Haskell-Cafe mailing list