Deprecate Foldable for Either

David Feuer david.feuer at gmail.com
Thu Mar 2 19:28:03 UTC 2017


Yes. That is an excellent plan. I'd love to call it Data.List, but others
will disagree.

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/~a
>> bela/>
>>     _______________________________________________
>>     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/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20170302/3cfc4819/attachment-0001.html>


More information about the Libraries mailing list