From 2f583dab9d72be4e8abfbbd9cdec9dc658f4ada1 Mon Sep 17 00:00:00 2001
From: Alexander Krotov <ilabdsf@gmail.com>
Date: Thu, 8 Nov 2018 14:41:07 +0300
Subject: [PATCH] Remove Functor and Applicative constraints where Monad
 already exists

---
 src/Text/Pandoc/Parsing.hs | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs
index 1c2c6408c..a40a891f6 100644
--- a/src/Text/Pandoc/Parsing.hs
+++ b/src/Text/Pandoc/Parsing.hs
@@ -869,8 +869,7 @@ lineBlockLines = try $ do
 
 -- | Parse a table using 'headerParser', 'rowParser',
 -- 'lineParser', and 'footerParser'.
-tableWith :: (Stream s m Char, HasReaderOptions st,
-              Functor mf, Applicative mf, Monad mf)
+tableWith :: (Stream s m Char, HasReaderOptions st, Monad mf)
           => ParserT s st m (mf [Blocks], [Alignment], [Int])
           -> ([Int] -> ParserT s st m (mf [Blocks]))
           -> ParserT s st m sep
@@ -883,8 +882,7 @@ tableWith headerParser rowParser lineParser footerParser = try $ do
 
 type TableComponents mf = ([Alignment], [Double], mf [Blocks], mf [[Blocks]])
 
-tableWith' :: (Stream s m Char, HasReaderOptions st,
-               Functor mf, Applicative mf, Monad mf)
+tableWith' :: (Stream s m Char, HasReaderOptions st, Monad mf)
            => ParserT s st m (mf [Blocks], [Alignment], [Int])
            -> ([Int] -> ParserT s st m (mf [Blocks]))
            -> ParserT s st m sep
@@ -931,8 +929,7 @@ widthsFromIndices numColumns' indices =
 -- (which may be grid), then the rows,
 -- which may be grid, separated by blank lines, and
 -- ending with a footer (dashed line followed by blank line).
-gridTableWith :: (Stream s m Char, HasReaderOptions st,
-                  Functor mf, Applicative mf, Monad mf, IsString s)
+gridTableWith :: (Stream s m Char, HasReaderOptions st, Monad mf, IsString s)
               => ParserT s st m (mf Blocks)  -- ^ Block list parser
               -> Bool                        -- ^ Headerless table
               -> ParserT s st m (mf Blocks)
@@ -940,8 +937,7 @@ gridTableWith blocks headless =
   tableWith (gridTableHeader headless blocks) (gridTableRow blocks)
             (gridTableSep '-') gridTableFooter
 
-gridTableWith' :: (Stream s m Char, HasReaderOptions st,
-                   Functor mf, Applicative mf, Monad mf, IsString s)
+gridTableWith' :: (Stream s m Char, HasReaderOptions st, Monad mf, IsString s)
                => ParserT s st m (mf Blocks)  -- ^ Block list parser
                -> Bool                        -- ^ Headerless table
                -> ParserT s st m (TableComponents mf)
@@ -980,8 +976,7 @@ gridTableSep :: Stream s m Char => Char -> ParserT s st m Char
 gridTableSep ch = try $ gridDashedLines ch >> return '\n'
 
 -- | Parse header for a grid table.
-gridTableHeader :: (Stream s m Char, Functor mf, Applicative mf, Monad mf,
-                    IsString s)
+gridTableHeader :: (Stream s m Char, Monad mf, IsString s)
                 => Bool -- ^ Headerless table
                 -> ParserT s st m (mf Blocks)
                 -> ParserT s st m (mf [Blocks], [Alignment], [Int])
@@ -1014,8 +1009,7 @@ gridTableRawLine indices = do
   return (gridTableSplitLine indices line)
 
 -- | Parse row of grid table.
-gridTableRow :: (Stream s m Char, Functor mf, Applicative mf, Monad mf,
-                 IsString s)
+gridTableRow :: (Stream s m Char, Monad mf, IsString s)
              => ParserT s st m (mf Blocks)
              -> [Int]
              -> ParserT s st m (mf [Blocks])
@@ -1449,8 +1443,7 @@ extractIdClass (ident, cls, kvs) = (ident', cls', kvs')
                Nothing -> cls
     kvs'  = filter (\(k,_) -> k /= "id" || k /= "class") kvs
 
-insertIncludedFile' :: (PandocMonad m, HasIncludeFiles st,
-                        Functor mf, Applicative mf, Monad mf)
+insertIncludedFile' :: (PandocMonad m, HasIncludeFiles st, Monad mf)
                     => ParserT [a] st m (mf Blocks)
                     -> (String -> [a])
                     -> [FilePath] -> FilePath