@@ -127,6 +127,7 @@ import Text.Pandoc.MIME (MimeType, getMimeType)
127127import System.FilePath ( (</>), takeExtension, dropExtension)
128128import Data.Generics (Typeable, Data)
129129import qualified Control.Monad.State as S
130+import Control.Monad.Trans (MonadIO (..))
130131import qualified Control.Exception as E
131132import Control.Monad (msum, unless, MonadPlus(..))
132133import Text.Pandoc.Pretty (charWidth)
@@ -974,7 +975,7 @@ openURL u
974975 UTF8.toString `fmap` lookup hContentType (responseHeaders resp))
975976#else
976977 | otherwise = E.try $ getBodyAndMimeType `fmap` browse
977− (do S.liftIO $ UTF8.hPutStrLn stderr $ "Fetching " ++ u ++ "..."
978+ (do liftIO $ UTF8.hPutStrLn stderr $ "Fetching " ++ u ++ "..."
978979 setOutHandler $ const (return ())
979980 setAllowRedirects True
980981 request (getRequest' u'))
@@ -997,10 +998,10 @@ err exitCode msg = do
997998 exitWith $ ExitFailure exitCode
998999 return undefined
9991000
1000−warn :: String -> IO ()
1001−warn msg = do
1001+warn :: MonadIO m => String -> m ()
1002+warn msg = liftIO $ do
10021003 name <- getProgName
1003− UTF8.hPutStrLn stderr $ name ++ ": " ++ msg
1004+ UTF8.hPutStrLn stderr $ "[" ++ name ++ " warning] " ++ msg
10041005
10051006mapLeft :: (a -> b) -> Either a c -> Either b c
10061007mapLeft f (Left x) = Left (f x)