From 8aa3d1cccc92250f4385260905142f04dd38b2ec Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 24 Jan 2012 11:50:35 -0800 Subject: Text.Pandoc: Added ToFilter instance for a -> [a] types. --- src/Text/Pandoc.hs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/Text') diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs index ba05589cd..0cd1af099 100644 --- a/src/Text/Pandoc.hs +++ b/src/Text/Pandoc.hs @@ -247,3 +247,13 @@ instance (Data a) => ToJsonFilter (a -> a) where instance (Data a) => ToJsonFilter (a -> IO a) where toJsonFilter f = getContents >>= (bottomUpM f :: Pandoc -> IO Pandoc) . decodeJSON >>= putStr . encodeJSON + +instance (Data a) => ToJsonFilter (a -> [a]) where + toJsonFilter f = getContents + >>= putStr . encodeJSON . (bottomUp (concatMap f) :: Pandoc -> Pandoc) . decodeJSON + +instance (Data a) => ToJsonFilter (a -> IO [a]) where + toJsonFilter f = getContents + >>= (bottomUpM (fmap concat . mapM f) :: Pandoc -> IO Pandoc) . decodeJSON + >>= putStr . encodeJSON + -- cgit v1.2.3