Deprecate Foldable for Either

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Thu Mar 2 21:20:42 UTC 2017


On 3 March 2017 at 06:28, David Feuer <david.feuer at gmail.com> wrote:
> Yes. That is an excellent plan. I'd love to call it Data.List, but others
> will disagree.

Same here.

I wasn't that happy with the FTP proposal when it first came up due to
potential confusions (primarily due to naming conventions like
"length"), but now that it's done we shouldn't go back.

So -1 on the proposal.

>
> On Mar 2, 2017 2:17 PM, "Andreas Abel" <andreas.abel at ifi.lmu.de> wrote:
>>
>> We could have a module
>>
>>   Data.List.ReallyJustListsAndNotSomeThingMoreGeneric
>>
>> which implements concat and friends just for lists and could be imported
>> if one wants to have the list operations.  Currently,
>>
>>   import qualified Data.List as List
>>
>> does not give on the list operations as e.g.
>>
>>   List.concat
>>
>> but the generic ones.
>>
>> See also http://ghc.haskell.org/trac/ghc/ticket/13345
>>
>> On 02.03.2017 20:02, Edward Kmett wrote:
>>>
>>>
>>> On Thu, Mar 2, 2017 at 11:59 AM, Andreas Abel <andreas.abel at ifi.lmu.de
>>> <mailto:andreas.abel at ifi.lmu.de>> wrote:
>>>
>>>     Ok, Foldable is a formal condition for Traversable, but not actually
>>>     used in the implementation of Traversable Either.  This still leaves
>>>     room to implement Foldable for Either by
>>>
>>>       instance Foldable (Either a) where
>>>         foldMap _ _ = error "Folding Either?  Naah, I don't think this
>>>     is a good idea."
>>>
>>>
>>> This would change the semantic of every
>>>
>>> forM_ myeither $ \i -> ....
>>>
>>> in existing code to silent errors.
>>>
>>> Hell no.
>>>
>>> -Edward
>>>
>>>
>>>     On 02.03.2017 17:48, David Feuer wrote:
>>>
>>>         The problem is that we'd then lose the perfectly good Traversable
>>>         instance, which would be sad.
>>>
>>>         On Mar 2, 2017 11:23 AM, "Andreas Abel" <andreas.abel at ifi.lmu.de
>>>         <mailto:andreas.abel at ifi.lmu.de>
>>>         <mailto:andreas.abel at ifi.lmu.de
>>>         <mailto:andreas.abel at ifi.lmu.de>>> wrote:
>>>
>>>             Today a student came to me wondering why a certain function
>>>         produced
>>>             a regular result, where he had expected an error.  Turned
>>>         out he had
>>>             used `concat`, but not on a lists of lists as he had
>>>         thought, but on
>>>             a lists of `Either a [b]`.
>>>
>>>             With the Foldable instance for Either, which considers
>>>         Either a b to
>>>             be a container of 0-1 elements of b, errors are happily
>>>         swallowed.
>>>
>>>             I think this instance is harmful and should be deprecated
>>>         (and later
>>>             removed) from base.
>>>
>>>             There are similarly pointless Foldable instances as well.
>>>
>>>             See a discussion one year ago, which was heated, but had no
>>>             consequences.
>>>
>>>
>>>
>>> https://mail.haskell.org/pipermail/libraries/2016-February/026678.html
>>>
>>> <https://mail.haskell.org/pipermail/libraries/2016-February/026678.html>
>>>
>>>
>>> <https://mail.haskell.org/pipermail/libraries/2016-February/026678.html
>>>
>>> <https://mail.haskell.org/pipermail/libraries/2016-February/026678.html>>
>>>
>>>
>>>             --
>>>             Andreas Abel  <><      Du bist der geliebte Mensch.
>>>
>>>             Department of Computer Science and Engineering
>>>             Chalmers and Gothenburg University, Sweden
>>>
>>>             andreas.abel at gu.se <mailto:andreas.abel at gu.se>
>>>         <mailto:andreas.abel at gu.se <mailto:andreas.abel at gu.se>>
>>>             http://www.cse.chalmers.se/~abela/
>>>         <http://www.cse.chalmers.se/~abela/>
>>>         <http://www.cse.chalmers.se/~abela/
>>>         <http://www.cse.chalmers.se/~abela/>>
>>>             _______________________________________________
>>>             Libraries mailing list
>>>             Libraries at haskell.org <mailto:Libraries at haskell.org>
>>>         <mailto:Libraries at haskell.org <mailto:Libraries at haskell.org>>
>>>             http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>>         <http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries>
>>>             <http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>>         <http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries>>
>>>
>>>
>>>
>>>     --
>>>     Andreas Abel  <><      Du bist der geliebte Mensch.
>>>
>>>     Department of Computer Science and Engineering
>>>     Chalmers and Gothenburg University, Sweden
>>>
>>>     andreas.abel at gu.se <mailto:andreas.abel at gu.se>
>>>     http://www.cse.chalmers.se/~abela/
>>> <http://www.cse.chalmers.se/~abela/>
>>>     _______________________________________________
>>>     Libraries mailing list
>>>     Libraries at haskell.org <mailto:Libraries at haskell.org>
>>>     http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>>     <http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries>
>>>
>>>
>>
>>
>> --
>> Andreas Abel  <><      Du bist der geliebte Mensch.
>>
>> Department of Computer Science and Engineering
>> Chalmers and Gothenburg University, Sweden
>>
>> andreas.abel at gu.se
>> http://www.cse.chalmers.se/~abela/
>
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>



-- 
Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com
http://IvanMiljenovic.wordpress.com


More information about the Libraries mailing list