bind :: Monad m => (a -> m b) -> m a -> m b

Felipe Lessa felipe.lessa at gmail.com
Wed Dec 10 03:24:58 UTC 2014


I'm not sure what Abel's vote is, but I'm -1 on this proposal precisely
because of the issues he explained below.

Cheers,

On 09-12-2014 23:44, Andreas Abel wrote:
> If there is a bindIO as specialization of (>>=), having a bind as alias
> for (=<<) is a bad idea.
> 
> In category theory (Kleisli triple), (=<<) is called the extension
> operator.
> 
> Most of my uses of (=<<) are infix, as a monadic application operator,
> so I never felt the need to have a non-operator version of it.
> 
> Haskell is all about saving parentheses and being not Scheme, so
> 
>   f a =<< g b
> 
> is definitely preferable over
> 
>   bind (f a) (g b)
> 
> ;-)
> 
> Cheers,
> Andreas
> 
> On 10.12.2014 00:35, David Feuer wrote:
>> It's possible I got confused by GHC.Base, which defines
>>
>> bindIO :: IO a -> (a -> IO b) -> IO b
>>
>> If that's backwards, then go right ahead and use bind to mean (=<<).
>>
>> On Tue, Dec 9, 2014 at 6:17 PM, Gabriel Gonzalez <gabriel439 at gmail.com
>> <mailto:gabriel439 at gmail.com>> wrote:
>>
>>     My understanding was that bind historically referred to `(=<<)`, not
>>     `(>>=)`
>>
>>     Either way I am (+1) on this, even if my previous sentence is false.
>>
>>
>>     On 12/9/14, 1:55 PM, David Feuer wrote:
>>>
>>>     On Dec 9, 2014 4:44 PM, "Christopher Done" <chrisdone at gmail.com
>>>     <mailto:chrisdone at gmail.com>> wrote:
>>>     > The name for this function is a no-brainer:
>>>     >
>>>     > bind :: Monad m => (a -> m b) -> m a -> m b
>>>     > bind = (=<<)
>>>
>>>     Since most people use the term "bind" to refer to the >>=
>>>     operator, this would be very confusing.
>>>
>>>     > For comparison, the not-very-pleasant <$> and <*> each have word
>>>     > alternatives, fmap and ap. Even <> has mappend.
>>>
>>>     fmap predates <$>, and <$> tends to be used only in certain
>>>     contexts. "ap" has a narrower type than <*>.
>>>
>>>     > I don’t hold much hope for this, Haskellers love operators as
>>>     much as
>>>     > Perl programmers so few on this list will see the value in
>>> plain old
>>>     > words, but at least I can link to this email in the archives for
>>>     > future reference.
>>>
>>>     I have nothing against the idea in principle, but that name won't
>>> fly.
>>>
>>>
>>>
>>>     _______________________________________________
>>>     Libraries mailing list
>>>     Libraries at haskell.org  <mailto:Libraries at haskell.org>
>>>     http://www.haskell.org/mailman/listinfo/libraries
>>
>>
>>
>>
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://www.haskell.org/mailman/listinfo/libraries
>>
> 
> 

-- 
Felipe.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://www.haskell.org/pipermail/libraries/attachments/20141210/28d04462/attachment.sig>


More information about the Libraries mailing list