 
            
            
            
            
                1 Apr
                
                    2016
                
            
            
                1 Apr
                
                '16
                
            
            
            
        
    
                10:23 a.m.
            
        On Fri, Apr 1, 2016 at 1:13 AM, Erik de Castro Lopo 
Which is the exact problem. I suspect that most people use `forM_` as "assume the action returns unit" rather than "assume the return value of the action is ignored".
A review of my code shows I mostly use it as "assume the return value of the action is ignored". Many things return data that is sometimes useful, but not always. Rarely do they have an '_' variant or the like to allow you to be more specific. I wouldn't find it to be overly onerous to throw "void" in in those cases though. I will point out that "void" isn't exported from the Prelude, while "mapM_" is. -davean