I have:
stuff :: IO [String]
doThings :: String -> IO [()]
and I want to
stuff >>= doThings
but my types are off. I want to do a lifted bind essentially but everything I try is subtly wrong.
With your original types, you can do:
stuff >>= mapM_ doThings
This also works if you change doThings to have type doThings :: String -> IO ()