From df360197687ff3be734e59688e5468ebe1363563 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Mon, 31 Oct 2022 16:51:51 -0700 Subject: First stab at mtl 2.3 compliance. This will no doubt produce a bunch of warnings and hence CI failures, which we'll need to work around with explicit imports. --- .github/workflows/ci.yml | 5 +++++ pandoc.cabal | 6 +++--- src/Text/Pandoc/App/Opt.hs | 4 +++- src/Text/Pandoc/Citeproc/BibTeX.hs | 3 ++- src/Text/Pandoc/Citeproc/Name.hs | 3 +-- src/Text/Pandoc/Class/PandocMonad.hs | 5 +++-- src/Text/Pandoc/Class/PandocPure.hs | 1 + src/Text/Pandoc/Parsing/General.hs | 3 ++- src/Text/Pandoc/Readers/CommonMark.hs | 1 + src/Text/Pandoc/Readers/Creole.hs | 3 ++- src/Text/Pandoc/Readers/DocBook.hs | 6 ++++++ src/Text/Pandoc/Readers/Docx.hs | 1 + src/Text/Pandoc/Readers/Docx/Parse.hs | 1 + src/Text/Pandoc/Readers/JATS.hs | 3 ++- src/Text/Pandoc/Writers/AnnotatedTable.hs | 1 - src/Text/Pandoc/Writers/AsciiDoc.hs | 1 + src/Text/Pandoc/Writers/ConTeXt.hs | 2 ++ src/Text/Pandoc/Writers/Docx.hs | 1 + src/Text/Pandoc/Writers/Docx/Table.hs | 3 ++- src/Text/Pandoc/Writers/FB2.hs | 4 ++-- src/Text/Pandoc/Writers/HTML.hs | 3 +++ src/Text/Pandoc/Writers/Haddock.hs | 1 + src/Text/Pandoc/Writers/ICML.hs | 1 + src/Text/Pandoc/Writers/Ipynb.hs | 1 + src/Text/Pandoc/Writers/JATS.hs | 1 + src/Text/Pandoc/Writers/LaTeX.hs | 9 +++++++++ src/Text/Pandoc/Writers/LaTeX/Table.hs | 1 + src/Text/Pandoc/Writers/Man.hs | 4 +++- src/Text/Pandoc/Writers/Markdown.hs | 1 + src/Text/Pandoc/Writers/Markdown/Inline.hs | 1 + src/Text/Pandoc/Writers/Ms.hs | 2 ++ src/Text/Pandoc/Writers/Muse.hs | 1 + src/Text/Pandoc/Writers/ODT.hs | 1 + src/Text/Pandoc/Writers/OOXML.hs | 2 +- src/Text/Pandoc/Writers/OpenDocument.hs | 3 ++- src/Text/Pandoc/Writers/Org.hs | 1 + src/Text/Pandoc/Writers/Powerpoint/Output.hs | 1 + src/Text/Pandoc/Writers/Powerpoint/Presentation.hs | 2 +- src/Text/Pandoc/Writers/RST.hs | 3 ++- src/Text/Pandoc/Writers/Texinfo.hs | 1 + src/Text/Pandoc/Writers/Textile.hs | 3 ++- 41 files changed, 78 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a6310193..31a33f7e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,6 +70,11 @@ jobs: cabal: '3.8' cabalopts: '' testopts: '--test-option=--hide-successes --test-option=--ansi-tricks=false' + + - ghc: '9.4.2' + cabal: '3.8' + cabalopts: '--allow-newer --constrain "mtl >= 2.3.1"' + testopts: '--test-option=--hide-successes --test-option=--ansi-tricks=false' steps: - uses: actions/checkout@v3 diff --git a/pandoc.cabal b/pandoc.cabal index b7cd7c0c3..8b56a77c3 100644 --- a/pandoc.cabal +++ b/pandoc.cabal @@ -496,7 +496,7 @@ library ipynb >= 0.2 && < 0.3, jira-wiki-markup >= 1.4 && < 1.5, mime-types >= 0.1.1 && < 0.2, - mtl >= 2.2 && < 2.3, + mtl >= 2.2 && < 2.4, network >= 2.6, network-uri >= 2.6 && < 2.8, pandoc-types >= 1.22.2 && < 1.23, @@ -750,7 +750,7 @@ test-suite test-pandoc directory >= 1.2.3 && < 1.4, doctemplates >= 0.10 && < 0.11, filepath >= 1.1 && < 1.5, - mtl >= 2.2 && < 2.3, + mtl >= 2.2 && < 2.4, pandoc-types >= 1.22.2 && < 1.23, process >= 1.2.3 && < 1.7, tasty >= 0.11 && < 1.5, @@ -824,7 +824,7 @@ benchmark benchmark-pandoc hs-source-dirs: benchmark build-depends: bytestring, tasty-bench >= 0.2 && <= 0.4, - mtl >= 2.2 && < 2.3, + mtl >= 2.2 && < 2.4, text >= 1.1.1.0 && < 2.1, deepseq -- we increase heap size to avoid benchmarking garbage collection: diff --git a/src/Text/Pandoc/App/Opt.hs b/src/Text/Pandoc/App/Opt.hs index 2c0cef5cd..ed95498e8 100644 --- a/src/Text/Pandoc/App/Opt.hs +++ b/src/Text/Pandoc/App/Opt.hs @@ -25,7 +25,9 @@ module Text.Pandoc.App.Opt ( , applyDefaults , fullDefaultsPath ) where -import Control.Monad.Except (MonadIO, liftIO, throwError, (>=>), foldM) +import Control.Monad.Except (throwError) +import Control.Monad.Trans (MonadIO, liftIO) +import Control.Monad ((>=>), foldM) import Control.Monad.State.Strict (StateT, modify, gets) import System.FilePath ( addExtension, (), takeExtension, takeDirectory ) import System.Directory ( canonicalizePath ) diff --git a/src/Text/Pandoc/Citeproc/BibTeX.hs b/src/Text/Pandoc/Citeproc/BibTeX.hs index e1ad44cc7..3c787595d 100644 --- a/src/Text/Pandoc/Citeproc/BibTeX.hs +++ b/src/Text/Pandoc/Citeproc/BibTeX.hs @@ -46,7 +46,8 @@ import qualified Data.Map as Map import Data.Maybe import Text.Pandoc.Parsing hiding ((<|>), many) import Control.Applicative -import Control.Monad.RWS hiding ((<>)) +import Control.Monad ( guard, MonadPlus(..), void ) +import Control.Monad.RWS ( asks, RWST, gets, modify, evalRWST ) import qualified Data.Sequence as Seq import Data.Char (isAlphaNum, isDigit, isLetter, isUpper, toLower, toUpper, diff --git a/src/Text/Pandoc/Citeproc/Name.hs b/src/Text/Pandoc/Citeproc/Name.hs index 2f9e4558d..d62a9e4a1 100644 --- a/src/Text/Pandoc/Citeproc/Name.hs +++ b/src/Text/Pandoc/Citeproc/Name.hs @@ -29,7 +29,6 @@ import Citeproc.Pandoc () import Text.Pandoc.Citeproc.Util (splitStrWhen) import qualified Data.Text as T import Data.List.Split (splitWhen, wordsBy) -import Control.Monad.RWS hiding ((<>)) import Data.Char (isUpper, isDigit) import Data.List (foldl') @@ -59,7 +58,7 @@ data NameOpts = -- | Parse a list of 'Inline's into a citeproc 'Name', identifying -- first and last name, particles, suffixes. -toName :: MonadPlus m => NameOpts -> [Inline] -> m Name +toName :: Monad m => NameOpts -> [Inline] -> m Name toName _ [Str "others"] = return emptyName{ nameLiteral = Just "others" } toName _ [Span ("",[],[]) ils] = -- corporate author diff --git a/src/Text/Pandoc/Class/PandocMonad.hs b/src/Text/Pandoc/Class/PandocMonad.hs index 57a65abc8..534ce74a9 100644 --- a/src/Text/Pandoc/Class/PandocMonad.hs +++ b/src/Text/Pandoc/Class/PandocMonad.hs @@ -54,8 +54,9 @@ module Text.Pandoc.Class.PandocMonad , checkUserDataDir ) where -import Control.Monad.Except (MonadError (catchError, throwError), - MonadTrans, lift, when) +import Control.Monad.Except (MonadError (catchError, throwError)) +import Control.Monad.Trans (MonadTrans, lift) +import Control.Monad (when) import Data.Time (UTCTime) import Data.Time.Clock.POSIX (POSIXTime, utcTimeToPOSIXSeconds, posixSecondsToUTCTime) diff --git a/src/Text/Pandoc/Class/PandocPure.hs b/src/Text/Pandoc/Class/PandocPure.hs index 290a6d97c..515052b0b 100644 --- a/src/Text/Pandoc/Class/PandocPure.hs +++ b/src/Text/Pandoc/Class/PandocPure.hs @@ -31,6 +31,7 @@ module Text.Pandoc.Class.PandocPure import Codec.Archive.Zip import Control.Monad.Except import Control.Monad.State.Strict +import Control.Monad (foldM) import Data.Default import Data.Text (Text) import Data.Time (UTCTime) diff --git a/src/Text/Pandoc/Parsing/General.hs b/src/Text/Pandoc/Parsing/General.hs index de099c33b..9decaef7d 100644 --- a/src/Text/Pandoc/Parsing/General.hs +++ b/src/Text/Pandoc/Parsing/General.hs @@ -67,9 +67,10 @@ import Control.Monad , unless , void , when + , MonadPlus(mzero) ) import Control.Monad.Except ( MonadError(throwError) ) -import Control.Monad.Identity ( Identity(..), MonadPlus(mzero) ) +import Control.Monad.Identity ( Identity(..) ) import Data.Char ( chr , isAlphaNum diff --git a/src/Text/Pandoc/Readers/CommonMark.hs b/src/Text/Pandoc/Readers/CommonMark.hs index 71cf6f37e..0739dcf8e 100644 --- a/src/Text/Pandoc/Readers/CommonMark.hs +++ b/src/Text/Pandoc/Readers/CommonMark.hs @@ -26,6 +26,7 @@ import Text.Pandoc.Definition import Text.Pandoc.Builder as B import Text.Pandoc.Options import Text.Pandoc.Readers.Metadata (yamlMetaBlock) +import Control.Monad (MonadPlus(mzero)) import Control.Monad.Except import Data.Functor.Identity (runIdentity) import Data.Typeable diff --git a/src/Text/Pandoc/Readers/Creole.hs b/src/Text/Pandoc/Readers/Creole.hs index 316e416d3..63a5b52d0 100644 --- a/src/Text/Pandoc/Readers/Creole.hs +++ b/src/Text/Pandoc/Readers/Creole.hs @@ -13,7 +13,8 @@ Conversion of creole text to 'Pandoc' document. module Text.Pandoc.Readers.Creole ( readCreole ) where -import Control.Monad.Except (guard, liftM2, throwError) +import Control.Monad +import Control.Monad.Except (throwError) import qualified Data.Foldable as F import Data.Maybe (fromMaybe) import Data.Text (Text) diff --git a/src/Text/Pandoc/Readers/DocBook.hs b/src/Text/Pandoc/Readers/DocBook.hs index 6804a1c86..2e594bf73 100644 --- a/src/Text/Pandoc/Readers/DocBook.hs +++ b/src/Text/Pandoc/Readers/DocBook.hs @@ -13,7 +13,13 @@ Conversion of DocBook XML to 'Pandoc' document. -} module Text.Pandoc.Readers.DocBook ( readDocBook ) where +import Control.Monad (MonadPlus(mplus)) import Control.Monad.State.Strict + ( MonadTrans(lift), + StateT(runStateT), + MonadState(get), + gets, + modify ) import Data.ByteString (ByteString) import Data.FileEmbed import Data.Char (isSpace, isLetter, chr) diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs index fa563f81e..d81ad8039 100644 --- a/src/Text/Pandoc/Readers/Docx.hs +++ b/src/Text/Pandoc/Readers/Docx.hs @@ -59,6 +59,7 @@ module Text.Pandoc.Readers.Docx ) where import Codec.Archive.Zip +import Control.Monad ( liftM, unless ) import Control.Monad.Reader import Control.Monad.State.Strict import Data.Bifunctor (bimap, first) diff --git a/src/Text/Pandoc/Readers/Docx/Parse.hs b/src/Text/Pandoc/Readers/Docx/Parse.hs index 2cd57d6fa..ad67d6170 100644 --- a/src/Text/Pandoc/Readers/Docx/Parse.hs +++ b/src/Text/Pandoc/Readers/Docx/Parse.hs @@ -60,6 +60,7 @@ module Text.Pandoc.Readers.Docx.Parse ( Docx(..) import Text.Pandoc.Readers.Docx.Parse.Styles import Codec.Archive.Zip import Control.Applicative ((<|>)) +import Control.Monad import Control.Monad.Except import Control.Monad.Reader import Control.Monad.State.Strict diff --git a/src/Text/Pandoc/Readers/JATS.hs b/src/Text/Pandoc/Readers/JATS.hs index 04b725c6a..643c92242 100644 --- a/src/Text/Pandoc/Readers/JATS.hs +++ b/src/Text/Pandoc/Readers/JATS.hs @@ -14,7 +14,8 @@ Conversion of JATS XML to 'Pandoc' document. -} module Text.Pandoc.Readers.JATS ( readJATS ) where -import Control.Monad.State.Strict +import Control.Monad.State.Strict ( StateT(runStateT), gets, modify ) +import Control.Monad (forM_, when, unless, MonadPlus(mplus)) import Control.Monad.Except (throwError) import Text.Pandoc.Error (PandocError(..)) import Data.Char (isDigit, isSpace) diff --git a/src/Text/Pandoc/Writers/AnnotatedTable.hs b/src/Text/Pandoc/Writers/AnnotatedTable.hs index 3f69496a9..d67ac9230 100644 --- a/src/Text/Pandoc/Writers/AnnotatedTable.hs +++ b/src/Text/Pandoc/Writers/AnnotatedTable.hs @@ -42,7 +42,6 @@ module Text.Pandoc.Writers.AnnotatedTable where import Control.Monad.RWS.Strict - hiding ( (<>) ) import Data.Generics ( Data , Typeable ) diff --git a/src/Text/Pandoc/Writers/AsciiDoc.hs b/src/Text/Pandoc/Writers/AsciiDoc.hs index 50a7a278f..a9e20980f 100644 --- a/src/Text/Pandoc/Writers/AsciiDoc.hs +++ b/src/Text/Pandoc/Writers/AsciiDoc.hs @@ -19,6 +19,7 @@ that it has omitted the construct. AsciiDoc: -} module Text.Pandoc.Writers.AsciiDoc (writeAsciiDoc, writeAsciiDoctor) where +import Control.Monad (foldM) import Control.Monad.State.Strict import Data.Char (isPunctuation, isSpace) import Data.List (delete, intercalate, intersperse) diff --git a/src/Text/Pandoc/Writers/ConTeXt.hs b/src/Text/Pandoc/Writers/ConTeXt.hs index 1c61dd2d0..fc8ff12c9 100644 --- a/src/Text/Pandoc/Writers/ConTeXt.hs +++ b/src/Text/Pandoc/Writers/ConTeXt.hs @@ -14,7 +14,9 @@ Conversion of 'Pandoc' format into ConTeXt. -} module Text.Pandoc.Writers.ConTeXt ( writeConTeXt ) where +import Control.Monad (liftM) import Control.Monad.State.Strict + ( StateT, MonadState(put, get), gets, modify, evalStateT ) import Data.Char (ord, isDigit) import Data.List (intersperse) import Data.List.NonEmpty (NonEmpty ((:|))) diff --git a/src/Text/Pandoc/Writers/Docx.hs b/src/Text/Pandoc/Writers/Docx.hs index 955f85f85..ffd413de5 100644 --- a/src/Text/Pandoc/Writers/Docx.hs +++ b/src/Text/Pandoc/Writers/Docx.hs @@ -19,6 +19,7 @@ Conversion of 'Pandoc' documents to docx. module Text.Pandoc.Writers.Docx ( writeDocx ) where import Codec.Archive.Zip import Control.Applicative ((<|>)) +import Control.Monad (MonadPlus(mplus), unless, when) import Control.Monad.Except (catchError, throwError) import Control.Monad.Reader import Control.Monad.State.Strict diff --git a/src/Text/Pandoc/Writers/Docx/Table.hs b/src/Text/Pandoc/Writers/Docx/Table.hs index 0c154d443..f5907edf1 100644 --- a/src/Text/Pandoc/Writers/Docx/Table.hs +++ b/src/Text/Pandoc/Writers/Docx/Table.hs @@ -13,7 +13,8 @@ module Text.Pandoc.Writers.Docx.Table ( tableToOpenXML ) where -import Control.Monad.State.Strict ( modify, gets, unless ) +import Control.Monad.State.Strict ( modify, gets ) +import Control.Monad ( unless ) import Data.Array ( elems, (!), assocs, indices ) import Data.Text (Text) import Text.Pandoc.Definition diff --git a/src/Text/Pandoc/Writers/FB2.hs b/src/Text/Pandoc/Writers/FB2.hs index f6237d072..8d969d171 100644 --- a/src/Text/Pandoc/Writers/FB2.hs +++ b/src/Text/Pandoc/Writers/FB2.hs @@ -18,9 +18,9 @@ FictionBook is an XML-based e-book format. For more information see: -} module Text.Pandoc.Writers.FB2 (writeFB2) where -import Control.Monad (zipWithM) +import Control.Monad (zipWithM, liftM) import Control.Monad.Except (catchError, throwError) -import Control.Monad.State.Strict (StateT, evalStateT, get, gets, lift, liftM, modify) +import Control.Monad.State.Strict (StateT, evalStateT, get, gets, lift, modify) import Data.ByteString.Base64 (encodeBase64) import Data.Char (isAscii, isControl, isSpace) import Data.Either (lefts, rights) diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs index aafc52248..3356e39fa 100644 --- a/src/Text/Pandoc/Writers/HTML.hs +++ b/src/Text/Pandoc/Writers/HTML.hs @@ -30,6 +30,9 @@ module Text.Pandoc.Writers.HTML ( tagWithAttributes ) where import Control.Monad.State.Strict + ( StateT, MonadState(get), gets, modify, evalStateT ) +import Control.Monad ( liftM, when, foldM, unless ) +import Control.Monad.Trans ( MonadTrans(lift) ) import Data.Char (ord) import Data.List (intercalate, intersperse, partition, delete, (\\), foldl') import Data.List.NonEmpty (NonEmpty((:|))) diff --git a/src/Text/Pandoc/Writers/Haddock.hs b/src/Text/Pandoc/Writers/Haddock.hs index 16376d528..8ce0150dd 100644 --- a/src/Text/Pandoc/Writers/Haddock.hs +++ b/src/Text/Pandoc/Writers/Haddock.hs @@ -14,6 +14,7 @@ Conversion of 'Pandoc' documents to haddock markup. Haddock: -} module Text.Pandoc.Writers.Haddock (writeHaddock) where +import Control.Monad (zipWithM) import Control.Monad.State.Strict import Data.Char (isAlphaNum) import Data.Default diff --git a/src/Text/Pandoc/Writers/ICML.hs b/src/Text/Pandoc/Writers/ICML.hs index 0d229a040..1b25a13fa 100644 --- a/src/Text/Pandoc/Writers/ICML.hs +++ b/src/Text/Pandoc/Writers/ICML.hs @@ -17,6 +17,7 @@ into InDesign with File -> Place. -} module Text.Pandoc.Writers.ICML (writeICML) where import Control.Monad.Except (catchError) +import Control.Monad (liftM2) import Control.Monad.State.Strict import Data.List (intersperse) import Data.Maybe (fromMaybe, maybeToList) diff --git a/src/Text/Pandoc/Writers/Ipynb.hs b/src/Text/Pandoc/Writers/Ipynb.hs index 667c413e9..fb2baecb8 100644 --- a/src/Text/Pandoc/Writers/Ipynb.hs +++ b/src/Text/Pandoc/Writers/Ipynb.hs @@ -14,6 +14,7 @@ Ipynb (Jupyter notebook JSON format) writer for pandoc. -} module Text.Pandoc.Writers.Ipynb ( writeIpynb ) where +import Control.Monad (foldM) import Control.Monad.State import qualified Data.Map as M import Data.Maybe (catMaybes, fromMaybe) diff --git a/src/Text/Pandoc/Writers/JATS.hs b/src/Text/Pandoc/Writers/JATS.hs index 3db7300e7..ddeadee21 100644 --- a/src/Text/Pandoc/Writers/JATS.hs +++ b/src/Text/Pandoc/Writers/JATS.hs @@ -22,6 +22,7 @@ module Text.Pandoc.Writers.JATS , writeJatsArticleAuthoring ) where import Control.Applicative ((<|>)) +import Control.Monad import Control.Monad.Reader import Control.Monad.State import Data.Generics (everywhere, mkT) diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs index 3c5fe9c47..ed5b1973d 100644 --- a/src/Text/Pandoc/Writers/LaTeX.hs +++ b/src/Text/Pandoc/Writers/LaTeX.hs @@ -20,6 +20,15 @@ module Text.Pandoc.Writers.LaTeX ( , writeBeamer ) where import Control.Monad.State.Strict + ( MonadState(get, put), + gets, + modify, + evalStateT ) +import Control.Monad + ( MonadPlus(mplus), + liftM, + when, + unless ) import Data.Containers.ListUtils (nubOrd) import Data.Char (isDigit) import Data.List (intersperse, (\\)) diff --git a/src/Text/Pandoc/Writers/LaTeX/Table.hs b/src/Text/Pandoc/Writers/LaTeX/Table.hs index 4e750974b..5a159ce32 100644 --- a/src/Text/Pandoc/Writers/LaTeX/Table.hs +++ b/src/Text/Pandoc/Writers/LaTeX/Table.hs @@ -15,6 +15,7 @@ module Text.Pandoc.Writers.LaTeX.Table ( tableToLaTeX ) where import Control.Monad.State.Strict +import Control.Monad (when) import Data.List (intersperse) import qualified Data.List.NonEmpty as NonEmpty import Data.List.NonEmpty (NonEmpty ((:|))) diff --git a/src/Text/Pandoc/Writers/Man.hs b/src/Text/Pandoc/Writers/Man.hs index ba40cf7c5..4e1651e53 100644 --- a/src/Text/Pandoc/Writers/Man.hs +++ b/src/Text/Pandoc/Writers/Man.hs @@ -14,7 +14,9 @@ Conversion of 'Pandoc' documents to roff man page format. -} module Text.Pandoc.Writers.Man ( writeMan ) where -import Control.Monad.State.Strict +import Control.Monad ( liftM, zipWithM, forM ) +import Control.Monad.State.Strict ( StateT, gets, modify, evalStateT ) +import Control.Monad.Trans (MonadTrans(lift)) import Data.List (intersperse) import Data.List.NonEmpty (nonEmpty) import Data.Maybe (fromMaybe) diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index 9b61a565a..17ca05205 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -21,6 +21,7 @@ module Text.Pandoc.Writers.Markdown ( writeCommonMark, writeMarkua, writePlain) where +import Control.Monad (foldM, zipWithM, MonadPlus(..), when) import Control.Monad.Reader import Control.Monad.State.Strict import Data.Default diff --git a/src/Text/Pandoc/Writers/Markdown/Inline.hs b/src/Text/Pandoc/Writers/Markdown/Inline.hs index 30509e637..363dfecf0 100644 --- a/src/Text/Pandoc/Writers/Markdown/Inline.hs +++ b/src/Text/Pandoc/Writers/Markdown/Inline.hs @@ -16,6 +16,7 @@ module Text.Pandoc.Writers.Markdown.Inline ( attrsToMarkdown, attrsToMarkua ) where +import Control.Monad (when, liftM2) import Control.Monad.Reader import Control.Monad.State.Strict import Data.Char (isAlphaNum, isDigit) diff --git a/src/Text/Pandoc/Writers/Ms.hs b/src/Text/Pandoc/Writers/Ms.hs index 023524601..77f22fc9e 100644 --- a/src/Text/Pandoc/Writers/Ms.hs +++ b/src/Text/Pandoc/Writers/Ms.hs @@ -21,6 +21,8 @@ TODO: module Text.Pandoc.Writers.Ms ( writeMs ) where import Control.Monad.State.Strict + ( gets, modify, evalStateT ) +import Control.Monad ( MonadPlus(mplus), liftM, unless, forM ) import Data.Containers.ListUtils (nubOrd) import Data.Char (isAscii, isLower, isUpper, ord) import Data.List (intercalate, intersperse) diff --git a/src/Text/Pandoc/Writers/Muse.hs b/src/Text/Pandoc/Writers/Muse.hs index 80fbf088d..048abcc67 100644 --- a/src/Text/Pandoc/Writers/Muse.hs +++ b/src/Text/Pandoc/Writers/Muse.hs @@ -25,6 +25,7 @@ However, @\@ tag is used for HTML raw blocks even though it is supported only in Emacs Muse. -} module Text.Pandoc.Writers.Muse (writeMuse) where +import Control.Monad (zipWithM) import Control.Monad.Except (throwError) import Control.Monad.Reader import Control.Monad.State.Strict diff --git a/src/Text/Pandoc/Writers/ODT.hs b/src/Text/Pandoc/Writers/ODT.hs index 17312387d..4025b4ab2 100644 --- a/src/Text/Pandoc/Writers/ODT.hs +++ b/src/Text/Pandoc/Writers/ODT.hs @@ -13,6 +13,7 @@ Conversion of 'Pandoc' documents to ODT. -} module Text.Pandoc.Writers.ODT ( writeODT ) where import Codec.Archive.Zip +import Control.Monad import Control.Monad.Except (catchError, throwError) import Control.Monad.State.Strict import qualified Data.ByteString.Lazy as B diff --git a/src/Text/Pandoc/Writers/OOXML.hs b/src/Text/Pandoc/Writers/OOXML.hs index 0c6cdab83..98bde20df 100644 --- a/src/Text/Pandoc/Writers/OOXML.hs +++ b/src/Text/Pandoc/Writers/OOXML.hs @@ -24,7 +24,7 @@ module Text.Pandoc.Writers.OOXML ( mknode ) where import Codec.Archive.Zip -import Control.Monad.Reader +import Control.Monad (mplus) import Control.Monad.Except (throwError) import Text.Pandoc.Error import qualified Data.ByteString as B diff --git a/src/Text/Pandoc/Writers/OpenDocument.hs b/src/Text/Pandoc/Writers/OpenDocument.hs index 7cf8b4bd6..cd682555b 100644 --- a/src/Text/Pandoc/Writers/OpenDocument.hs +++ b/src/Text/Pandoc/Writers/OpenDocument.hs @@ -15,7 +15,8 @@ Conversion of 'Pandoc' documents to OpenDocument XML. -} module Text.Pandoc.Writers.OpenDocument ( writeOpenDocument ) where import Control.Arrow ((***), (>>>)) -import Control.Monad.State.Strict hiding (when) +import Control.Monad hiding (when) +import Control.Monad.State.Strict import Data.Char (chr) import Data.Foldable (find) import Data.List (sortOn, sortBy, foldl') diff --git a/src/Text/Pandoc/Writers/Org.hs b/src/Text/Pandoc/Writers/Org.hs index 24632109b..1ef96235a 100644 --- a/src/Text/Pandoc/Writers/Org.hs +++ b/src/Text/Pandoc/Writers/Org.hs @@ -16,6 +16,7 @@ Conversion of 'Pandoc' documents to Emacs Org-Mode. Org-Mode: -} module Text.Pandoc.Writers.Org (writeOrg) where +import Control.Monad (zipWithM) import Control.Monad.State.Strict import Data.Char (isAlphaNum, isDigit) import Data.List (intersperse, partition, transpose) diff --git a/src/Text/Pandoc/Writers/Powerpoint/Output.hs b/src/Text/Pandoc/Writers/Powerpoint/Output.hs index 3b87d8c1d..1d2b41385 100644 --- a/src/Text/Pandoc/Writers/Powerpoint/Output.hs +++ b/src/Text/Pandoc/Writers/Powerpoint/Output.hs @@ -21,6 +21,7 @@ Text.Pandoc.Writers.Powerpoint.Presentation) to a zip archive. module Text.Pandoc.Writers.Powerpoint.Output ( presentationToArchive ) where +import Control.Monad ( MonadPlus(mplus), foldM, unless ) import Control.Monad.Except (throwError, catchError) import Control.Monad.Reader import Control.Monad.State diff --git a/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs b/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs index fd6b83120..49f4f656f 100644 --- a/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs +++ b/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs @@ -43,7 +43,7 @@ module Text.Pandoc.Writers.Powerpoint.Presentation ( documentToPresentation , LinkTarget(..) ) where - +import Control.Monad import Control.Monad.Reader import Control.Monad.State import Data.List (intercalate) diff --git a/src/Text/Pandoc/Writers/RST.hs b/src/Text/Pandoc/Writers/RST.hs index 023f1b4f1..6c166f279 100644 --- a/src/Text/Pandoc/Writers/RST.hs +++ b/src/Text/Pandoc/Writers/RST.hs @@ -14,7 +14,8 @@ Conversion of 'Pandoc' documents to reStructuredText. reStructuredText: -} module Text.Pandoc.Writers.RST ( writeRST, flatten ) where -import Control.Monad.State.Strict +import Control.Monad.State.Strict ( StateT, gets, modify, evalStateT ) +import Control.Monad (zipWithM, liftM) import Data.Char (isSpace, generalCategory, isAscii, isAlphaNum, GeneralCategory( ClosePunctuation, OpenPunctuation, InitialQuote, diff --git a/src/Text/Pandoc/Writers/Texinfo.hs b/src/Text/Pandoc/Writers/Texinfo.hs index d5f074a14..fed936708 100644 --- a/src/Text/Pandoc/Writers/Texinfo.hs +++ b/src/Text/Pandoc/Writers/Texinfo.hs @@ -12,6 +12,7 @@ Conversion of 'Pandoc' format into Texinfo. -} module Text.Pandoc.Writers.Texinfo ( writeTexinfo ) where +import Control.Monad (zipWithM) import Control.Monad.Except (throwError) import Control.Monad.State.Strict import Data.Char (chr, ord, isAlphaNum) diff --git a/src/Text/Pandoc/Writers/Textile.hs b/src/Text/Pandoc/Writers/Textile.hs index ee31ab378..44c5df289 100644 --- a/src/Text/Pandoc/Writers/Textile.hs +++ b/src/Text/Pandoc/Writers/Textile.hs @@ -13,7 +13,8 @@ Conversion of 'Pandoc' documents to Textile markup. Textile: -} module Text.Pandoc.Writers.Textile ( writeTextile ) where -import Control.Monad.State.Strict +import Control.Monad (zipWithM, liftM) +import Control.Monad.State.Strict ( StateT, gets, modify, evalStateT ) import Data.Char (isSpace) import Data.Text (Text) import qualified Data.Text as T -- cgit v1.2.3