Hi,
Sugestion: 'when' in Control.Monad is typed
as :: Bool -> IO () -> IO ().
Why not type it as:
:: forall a. => Bool -> IO a -> IO ()
? It is easy for 'when' to ignore the result
of the first computation, and this would not
break existing code, and also save a lot of
>> return ()s.
Best,
Mauríco