if 'update' were changed to
update :: [String] -> IO ()

then you could do:
​doIt :: IO ()
doIt = sequence [inputA,inputB] >>= update

is this better?