[Haskell] Types of when and unless in Control.Monad

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Sun Apr 22 13:49:52 CEST 2012


On 22 April 2012 21:39, Christian Höner zu Siederdissen
<choener at tbi.univie.ac.at> wrote:
> * Julian Gilbey <julian at d-and-j.net> [22.04.2012 09:22]:
>> On Sat, Apr 21, 2012 at 08:28:27PM -0500, Strake wrote:
>> > On 21/04/2012, Andreas Abel <andreas.abel at ifi.lmu.de> wrote:
>> > > to avoid silly "return ()" statements like in
>> > >
>> > >    when cond $ do
>> > >      monadicComputationWhoseResultIWantToDiscard
>> > >      return ()
>> >
>> > (when cond ∘ void) monadicComputationWhoseResultIWantToDiscard
>> > or
>> > when cond $ () <$ monadicComputationWhoseResultIWantToDiscard
>>
>> How is that simpler than
>>
>>   when cond monadicComputationWhoseResultIWantToDiscard
>>
>> which it would be with the suggested new type?
>>
>>    Julian
>
> Wouldn't "when_" and "unless_" or similar be better? I'd probably like
> to have the compiler annoy me, since it is not clear that I want to
> discard the result. If I really want to discard, I should have to make
> it clear as there is probably a good reason for the inner function to
> return a result in the first place?

Agreed; I'm not sure if I agree with having such functionality
(Henning makes some good points), but if people deem it desirable then
I think it would be better to have them with new names for the reasons
you state.

-- 
Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com
http://IvanMiljenovic.wordpress.com



More information about the Libraries mailing list