instance (Read a) => Read (IO a) where readsPrec d s = let f = readsPrec d in let xs = f s in map (\(x, s) -> (return x, s)) xs main = do read "123" :: IO Int print "Hello" x <- read "123" :: IO Int print $ "World" ++ show x