if 'update' were changed to update :: [String] -> IO () then you could do: doIt :: IO () doIt = sequence [inputA,inputB] >>= update is this better? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.haskell.org/pipermail/beginners/attachments/20160519/112445c3/attachment.html>