From 10cdd59fa8664caf5ac73dc06ee7076a4bbe69bd Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Thu, 9 Aug 2012 07:52:39 -0700 Subject: Added safeRead to Text.Pandoc.Shared. --- src/Text/Pandoc/Shared.hs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/Text') diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs index f3ec43a06..9f615867c 100644 --- a/src/Text/Pandoc/Shared.hs +++ b/src/Text/Pandoc/Shared.hs @@ -65,7 +65,9 @@ module Text.Pandoc.Shared ( readDataFile, -- * Error handling err, - warn + warn, + -- * Safe read + safeRead ) where import Text.Pandoc.Definition @@ -489,3 +491,12 @@ warn :: String -> IO () warn msg = do name <- getProgName UTF8.hPutStrLn stderr $ name ++ ": " ++ msg + +-- +-- Safe read +-- + +safeRead :: (Monad m, Read a) => String -> m a +safeRead s = case reads s of + (d,[]):_ -> return d + _ -> fail $ "Could not read `" ++ s ++ "'" -- cgit v1.2.3