@@ -65,7 +65,9 @@ module Text.Pandoc.Shared (
65 readDataFile,
65 readDataFile,
66 -- * Error handling
66 -- * Error handling
71import Text.Pandoc.Definition
73import Text.Pandoc.Definition
@@ -489,3 +491,12 @@ warn :: String -> IO ()
489warn msg = do
491warn msg = do
490 name <- getProgName
492 name <- getProgName
491 UTF8.hPutStrLn stderr $ name ++ ": " ++ msg
493 UTF8.hPutStrLn stderr $ name ++ ": " ++ msg
499+safeRead :: (Monad m, Read a) => String -> m a
500+safeRead s = case reads s of
501+ (d,[]):_ -> return d
502+ _ -> fail $ "Could not read `" ++ s ++ "'"