transforming IO String to String
问题 I am having an issue converting IO String() to a String() Below is the function to eval an expression. foobar :: String -> IO String eval :: String -> Sh () () eval x = do s <- foobar x shellPutStrLn $ s This isnt working, because eval returns IO String instead of Sh. The moment some IO is done within a function it transforms/taints it into IO String. How do I prevent the transformation or convert an IO String to String ? 回答1: It looks like your Sh type is supposed to be able to do IO. The