Proposal: add fromRight and fromLeft to Data.Either

David Feuer david.feuer at gmail.com
Sat May 21 18:39:23 UTC 2016


That's what I meant. Sorry; typing in my sleep!
On May 21, 2016 2:06 PM, "Andreas Abel" <abela at chalmers.se> wrote:

> Ah, yes, we want fromLeft and fromRight, but with types
>
>   fromLeft  :: a -> Either a b -> a
>   fromRight :: b -> Either a b -> b
>
> where the first argument is the "default", like
>
>   fromLeft a (Right b) = a
>
> Then you can write
>
>   fromLeft impossible e
>
> where `impossible` does a controlled crash of your program.  (See
> fromMaybe.)
>
> --Andreas
>
> On 21.05.2016 15:16, Edward Kmett wrote:
>
>> Sorry, I meant fromJust.
>>
>> On Sat, May 21, 2016 at 8:58 AM, David Feuer <david.feuer at gmail.com
>> <mailto:david.feuer at gmail.com>> wrote:
>>
>>     No one wants to remove fromMaybe. In fact, it could serve as a
>>     template for total fromLeft and fromRight:
>>
>>     fromLeft :: b -> (a -> b) -> Either a x -> b
>>     fromRight :: b -> (a -> b) -> Either x a -> b
>>
>>     On May 21, 2016 8:55 AM, "Edward Kmett" <ekmett at gmail.com
>>     <mailto:ekmett at gmail.com>> wrote:
>>
>>         I'm personally -1 on this.
>>
>>         A large portion of the community is vehemently against adding
>>         new partial functions, and they have to share base with the rest
>>         of us. I'd say more people want to remove fromMaybe, head, tail,
>>         etc. than want to double down on the pattern at this time.
>>
>>         -Edward
>>
>>         On Fri, May 20, 2016 at 4:08 PM, Anton Felix Lorenzen
>>         <anfelor at posteo.de <mailto:anfelor at posteo.de>> wrote:
>>
>>             When working with Either,
>>             I am often missing two simple functions:
>>             fromRight :: Either a b -> b
>>             fromLeft  :: Either a b -> a
>>
>>             It has been implemented a couple of times:
>>             http://hayoo.fh-wedel.de/?query=fromRight
>>
>>             But I don't want to depend on yet another library
>>             for such a basic function.
>>
>>             Could it be added?
>>
>>             Anton
>>             _______________________________________________
>>             Libraries mailing list
>>             Libraries at haskell.org <mailto:Libraries at haskell.org>
>>             http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>
>>
>>
>>         _______________________________________________
>>         Libraries mailing list
>>         Libraries at haskell.org <mailto: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
>>
>>
>
> --
> Andreas Abel  <><      Du bist der geliebte Mensch.
>
> Department of Computer Science and Engineering
> Chalmers and Gothenburg University, Sweden
>
> andreas.abel at gu.se
> http://www2.tcs.ifi.lmu.de/~abel/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20160521/b404f959/attachment.html>


More information about the Libraries mailing list