For me the convenience
        of for_
        (without having to use void)
        is more important than increased safety, but I accept that
        others’ needs are different – sometimes avoiding such nasty
        surprises is incredibly important, sometimes not so, and it
        depends both on the developer and the project.
      
In an ideal world it’d
        probably be an optional warning (which I’d be able to disable,
        just like I do with fwarn-unused-do-bind),
        but I have no idea how hard it would be to implement and I can't
        imagine how it might look anyway.
      
Bottom line: if it will
        result in an error and not a warning (i.e. changing the type of
        mapM_/forM_/for_,
        as originally proposed), I’m mildly against this idea.