Improving void

Malcolm Wallace malcolm.wallace at
Tue Aug 6 08:32:25 CEST 2013

Can you explain why you think it is an improvement?
To me, it looks like line noise.


On 5/08/2013, at 20:06, Edward Kmett <ekmett at> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Libraries mailing list