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