Proposal: Add cons function to Data.List module

Bryan Richter b at chreekat.net
Thu Sep 12 15:05:05 UTC 2019


I had the same reaction as Taylor, since Helmut referred to the singleton
proposal as "pointless" in the thread on "on". Then I stopped to wonder if
there was a mixup. "Point-free" style, which cons and singleton both
facilitate, is sometimes called "pointless" style, but usually only as a
joke. It's wordplay.

Since Helmut writes perfectly good English, I had assumed the wordplay was
intentional, which made me suspicious of the nature of this proposal. But
from over here on my little digital device, it is hard to know for sure.

Either way, I think the plan to make Data.List qualified-by-default is
great, and having a uniform abstraction over list-like things is also good.
I look forward to seeing more use of backpack to take advantage of such
abstractions.

I suggest that the haddocks for Data.List.cons clearly state that it is
just a synonym for the list constructor, so we get a built-in "teachable
moment".


On Wed, 11 Sep 2019, 17.33 Helmut Schmidt, <helmut.schmidt.4711 at gmail.com>
wrote:

> Taylor,
>
> Is it really necessary for you to be so rude? I can assure you that my
> proposal has been made in the same good faith as your proposal which
> inspired mine.
>
> Besides that unnecessary snark you do make an excellent point regarding
> the poor discoverability of the list constructor which I imagine must cause
> a lot of confusion among newcomers.Thank you for keeping an open mind!
>
>
>
> Am Mi., 11. Sept. 2019 um 11:21 Uhr schrieb Taylor Fausak <
> taylor at fausak.me>:
>
>> I suspect this proposal was not made in good faith. I feel like it was
>> meant to make fun of my list singleton proposal.
>>
>> In spite of that, I am in favor of this proposal. One of the (very
>> minor!) problems with lists in Haskell is that they can’t be documented
>> with Haddock because they’re part of the syntax. For example, if you search
>> Hoogle for `(:)` or `a -> [a] -> [a]` you won’t find the venerable list
>> constructor. You will find `cons` from the `extra` package, which I think
>> suggests that this proposal is a good idea.
>>
>> +1
>>
>> > On Sep 11, 2019, at 4:13 AM, Oliver Charles <ollie at ocharles.org.uk>
>> wrote:
>> >
>> > On Wed, Sep 11, 2019 at 7:36 AM Helmut Schmidt
>> > <helmut.schmidt.4711 at gmail.com> wrote:
>> >
>> >> I can't be the only that wants this function, right?
>> >
>> > You're not the only one! I would also like this function. In fact,
>> > only yesterday I found myself writing
>> >
>> >  ( x : ) <$> recurse xs
>> >
>> > I would have preferred
>> >
>> >  cons x <$> recurse xs
>> >
>> > +1 to adding  cons :: x -> [x] -> [x]  to  Data.List.
>> >
>> > Ollie
>> > _______________________________________________
>> > Libraries mailing list
>> > Libraries at haskell.org
>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>
>> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20190912/34a3c830/attachment.html>


More information about the Libraries mailing list