Improving void

Edward Kmett ekmett at gmail.com
Tue Aug 6 14:34:00 CEST 2013


Because there are many Functors for which (<$) provides better sharing and/or performance, and it has zero impact on anyone who has never heard of (<$).

Sent from my iPad

On Aug 6, 2013, at 2:32 AM, Malcolm Wallace <malcolm.wallace at me.com> wrote:

> Can you explain why you think it is an improvement?
> To me, it looks like line noise.
> 
>  Regards,
>     Malcolm
> 
> On 5/08/2013, at 20:06, Edward Kmett <ekmett at gmail.com> wrote:
> 
> Right now the definition of Control.Monad.void is:
> void :: Functor f => f a -> f ()
> void = fmap (const ())
> I propose we replace it with
> void :: Functor f => f a -> f ()
> 
> void = (() <$)
> This expands out to the former definition by the default definition of (<$) and Data.Functor.Functor exports (<$) explicitly to make it possible to optimize this sort of thing. It seems a shame not to use it.
> 
> Discussion Period: 2 weeks
> _______________________________________________
> Libraries mailing list
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20130806/d259178e/attachment.htm>


More information about the Libraries mailing list