git.iko.soy/typeable/pandoc
on master help sign in
Monoid/Semiground cleanup relying on custom Prelude.
commitf0b6e0ee4970c2338159c376935d375f4aeda1dc authorJohn MacFarlane <jgm@berkeley.edu> dateFri 16 Mar 2018, 12:11 (9 years ago) parente21b579
28 files changed+8−70
src/Text/Pandoc/App.hs−1 src/Text/Pandoc/Class.hs−4 src/Text/Pandoc/Extensions.hs−6 src/Text/Pandoc/MediaBag.hs−4 src/Text/Pandoc/PDF.hs−1 src/Text/Pandoc/Parsing.hs−9 src/Text/Pandoc/Pretty.hs−5 src/Text/Pandoc/Readers/Creole.hs+1−2 src/Text/Pandoc/Readers/EPUB.hs−1 src/Text/Pandoc/Readers/HTML.hs+1−1 src/Text/Pandoc/Readers/Haddock.hs−1 src/Text/Pandoc/Readers/Markdown.hs−1 src/Text/Pandoc/Readers/MediaWiki.hs−1 src/Text/Pandoc/Readers/Odt/Generic/Fallible.hs+2−4 src/Text/Pandoc/Readers/Odt/StyleReader.hs−10 src/Text/Pandoc/Readers/Org/Blocks.hs−1 src/Text/Pandoc/Readers/Org/DocumentTree.hs−1 src/Text/Pandoc/Readers/Org/Inlines.hs−1 src/Text/Pandoc/Readers/RST.hs−1 src/Text/Pandoc/Readers/Textile.hs−1 src/Text/Pandoc/Readers/Txt2Tags.hs+1−2 src/Text/Pandoc/Readers/Vimwiki.hs−1 src/Text/Pandoc/SelfContained.hs−1 src/Text/Pandoc/Shared.hs+2−3 src/Text/Pandoc/Translations.hs−4 src/Text/Pandoc/Writers/CommonMark.hs+1−1 src/Text/Pandoc/Writers/HTML.hs−1 src/Text/Pandoc/Writers/OOXML.hs−1
src/Text/Pandoc/App.hs−1
@@ -54,7 +54,6 @@ import Data.Char (toLower, toUpper)
5454import Data.List (find, intercalate, isPrefixOf, isSuffixOf, sort)
5555import qualified Data.Map as M
5656import Data.Maybe (fromMaybe, isJust, isNothing)
57−import Data.Monoid
5857import qualified Data.Set as Set
5958import Data.Text (Text)
6059import qualified Data.Text as T
src/Text/Pandoc/Class.hs−4
@@ -923,11 +923,7 @@ data FileInfo = FileInfo { infoFileMTime :: UTCTime
923923 }
924924
925925newtype FileTree = FileTree {unFileTree :: M.Map FilePath FileInfo}
926−#if MIN_VERSION_base(4,9,0)
927926 deriving (Semigroup, Monoid)
928−#else
929− deriving (Monoid)
930−#endif
931927
932928getFileInfo :: FilePath -> FileTree -> Maybe FileInfo
933929getFileInfo fp tree =
src/Text/Pandoc/Extensions.hs−6
@@ -60,17 +60,11 @@ import Text.Parsec
6060newtype Extensions = Extensions Integer
6161 deriving (Show, Read, Eq, Ord, Data, Typeable, Generic, ToJSON, FromJSON)
6262
63−#if MIN_VERSION_base(4,9,0)
6463instance Semigroup Extensions where
6564 (Extensions a) <> (Extensions b) = Extensions (a .|. b)
6665instance Monoid Extensions where
6766 mempty = Extensions 0
6867 mappend = (<>)
69−#else
70−instance Monoid Extensions where
71− mempty = Extensions 0
72− mappend (Extensions a) (Extensions b) = Extensions (a .|. b)
73−#endif
7468
7569extensionsFromList :: [Extension] -> Extensions
7670extensionsFromList = foldr enableExtension emptyExtensions
src/Text/Pandoc/MediaBag.hs−4
@@ -51,11 +51,7 @@ import Text.Pandoc.MIME (MimeType, getMimeTypeDef)
5151-- can be used for an empty 'MediaBag', and '<>' can be used to append
5252-- two 'MediaBag's.
5353newtype MediaBag = MediaBag (M.Map [String] (MimeType, BL.ByteString))
54−#if MIN_VERSION_base(4,9,0)
5554 deriving (Semigroup, Monoid, Data, Typeable)
56−#else
57− deriving (Monoid, Data, Typeable)
58−#endif
5955
6056instance Show MediaBag where
6157 show bag = "MediaBag " ++ show (mediaDirectory bag)
src/Text/Pandoc/PDF.hs−1
@@ -41,7 +41,6 @@ import Data.ByteString.Lazy (ByteString)
4141import qualified Data.ByteString.Lazy as BL
4242import qualified Data.ByteString.Lazy.Char8 as BC
4343import Data.Maybe (fromMaybe)
44−import Data.Monoid ((<>))
4544import Data.Text (Text)
4645import qualified Data.Text as T
4746import qualified Data.Text.IO as TextIO
src/Text/Pandoc/Parsing.hs−9
@@ -203,9 +203,6 @@ import Data.Default
203203import Data.List (intercalate, isSuffixOf, transpose)
204204import qualified Data.Map as M
205205import Data.Maybe (mapMaybe, fromMaybe)
206−#if MIN_VERSION_base(4,9,0)
207−import Data.Semigroup (Semigroup, (<>))
208−#endif
209206import qualified Data.Set as Set
210207import Data.Text (Text)
211208import Text.HTML.TagSoup.Entity (lookupEntity)
@@ -253,17 +250,11 @@ returnF = return . return
253250trimInlinesF :: Future s Inlines -> Future s Inlines
254251trimInlinesF = liftM trimInlines
255252
256−#if MIN_VERSION_base(4,9,0)
257253instance Semigroup a => Semigroup (Future s a) where
258254 (<>) = liftM2 (<>)
259255instance (Semigroup a, Monoid a) => Monoid (Future s a) where
260256 mempty = return mempty
261257 mappend = (<>)
262−#else
263−instance Monoid a => Monoid (Future s a) where
264− mempty = return mempty
265− mappend = liftM2 mappend
266−#endif
267258
268259-- | Parse characters while a predicate is true.
269260takeWhileP :: Monad m
src/Text/Pandoc/Pretty.hs−5
@@ -82,7 +82,6 @@ import Control.Monad.State.Strict
8282import Data.Char (isSpace)
8383import Data.Foldable (toList)
8484import Data.List (intersperse)
85−import Data.Monoid ((<>))
8685import Data.Sequence (Seq, ViewL (..), fromList, mapWithIndex, singleton, viewl,
8786 (<|))
8887import qualified Data.Sequence as Seq
@@ -112,11 +111,7 @@ data D = Text Int String
112111 deriving (Show, Eq)
113112
114113newtype Doc = Doc { unDoc :: Seq D }
115−#if MIN_VERSION_base(4,9,0)
116114 deriving (Semigroup, Monoid, Show, Eq)
117−#else
118− deriving (Monoid, Show, Eq)
119−#endif
120115
121116instance IsString Doc where
122117 fromString = text
src/Text/Pandoc/Readers/Creole.hs+1−2
@@ -38,7 +38,6 @@ module Text.Pandoc.Readers.Creole ( readCreole
3838import Control.Monad.Except (guard, liftM2, throwError)
3939import qualified Data.Foldable as F
4040import Data.Maybe (fromMaybe)
41−import Data.Monoid
4241import Data.Text (Text)
4342import qualified Data.Text as T
4443import qualified Text.Pandoc.Builder as B
@@ -67,7 +66,7 @@ type CRLParser = ParserT [Char] ParserState
6766-- Utility functions
6867--
6968
70−(<+>) :: (Monad m, Monoid a) => m a -> m a -> m a
69+(<+>) :: (Monad m, Semigroup a) => m a -> m a -> m a
7170(<+>) = liftM2 (<>)
7271
7372-- we have to redefine `enclosed' from Text.Pandoc.Parsing, because it
src/Text/Pandoc/Readers/EPUB.hs−1
@@ -16,7 +16,6 @@ import qualified Data.ByteString.Lazy as BL (ByteString)
1616import Data.List (isInfixOf, isPrefixOf)
1717import qualified Data.Map as M (Map, elems, fromList, lookup)
1818import Data.Maybe (fromMaybe, mapMaybe)
19−import Data.Monoid ((<>))
2019import qualified Data.Text.Lazy as TL
2120import qualified Data.Text.Lazy.Encoding as TL
2221import Network.URI (unEscapeString)
src/Text/Pandoc/Readers/HTML.hs+1−1
@@ -54,7 +54,7 @@ import Data.List (isPrefixOf)
5454import Data.List.Split (wordsBy, splitWhen)
5555import qualified Data.Map as M
5656import Data.Maybe (fromMaybe, isJust, isNothing)
57−import Data.Monoid (First (..), (<>))
57+import Data.Monoid (First (..))
5858import qualified Data.Set as Set
5959import Data.Text (Text)
6060import qualified Data.Text as T
src/Text/Pandoc/Readers/Haddock.hs−1
@@ -17,7 +17,6 @@ module Text.Pandoc.Readers.Haddock
1717import Control.Monad.Except (throwError)
1818import Data.List (intersperse, stripPrefix)
1919import Data.Maybe (fromMaybe)
20−import Data.Monoid ((<>))
2120import Data.Text (Text, unpack)
2221import Documentation.Haddock.Parser
2322import Documentation.Haddock.Types
src/Text/Pandoc/Readers/Markdown.hs−1
@@ -39,7 +39,6 @@ import qualified Data.HashMap.Strict as H
3939import Data.List (intercalate, sortBy, transpose, elemIndex)
4040import qualified Data.Map as M
4141import Data.Maybe
42−import Data.Monoid
4342import Data.Ord (comparing)
4443import Data.Scientific (base10Exponent, coefficient)
4544import qualified Data.Set as Set
src/Text/Pandoc/Readers/MediaWiki.hs−1
@@ -45,7 +45,6 @@ import qualified Data.Foldable as F
4545import Data.List (intercalate, intersperse, isPrefixOf)
4646import qualified Data.Map as M
4747import Data.Maybe (fromMaybe, maybeToList)
48−import Data.Monoid ((<>))
4948import Data.Sequence (ViewL (..), viewl, (<|))
5049import qualified Data.Set as Set
5150import Data.Text (Text, unpack)
src/Text/Pandoc/Readers/Odt/Generic/Fallible.hs+2−4
@@ -39,8 +39,6 @@ compatible instances of "ArrowChoice".
3939-- We export everything
4040module Text.Pandoc.Readers.Odt.Generic.Fallible where
4141
42−import Data.Monoid ((<>))
43−
4442-- | Default for now. Will probably become a class at some point.
4543type Failure = ()
4644
@@ -90,7 +88,7 @@ collapseEither (Right (Right x)) = Right x
9088-- (possibly combined) non-error. If both values represent an error, an error
9189-- is returned.
9290chooseMax :: (Monoid a, Monoid b) => Either a b -> Either a b -> Either a b
93−chooseMax = chooseMaxWith (<>)
91+chooseMax = chooseMaxWith mappend
9492
9593-- | If either of the values represents a non-error, the result is a
9694-- (possibly combined) non-error. If both values represent an error, an error
@@ -100,7 +98,7 @@ chooseMaxWith :: (Monoid a) => (b -> b -> b)
10098 -> Either a b
10199 -> Either a b
102100chooseMaxWith (><) (Right a) (Right b) = Right $ a >< b
103−chooseMaxWith _ (Left a) (Left b) = Left $ a <> b
101+chooseMaxWith _ (Left a) (Left b) = Left $ a `mappend` b
104102chooseMaxWith _ (Right a) _ = Right a
105103chooseMaxWith _ _ (Right b) = Right b
106104
src/Text/Pandoc/Readers/Odt/StyleReader.hs−10
@@ -182,7 +182,6 @@ data Styles = Styles
182182 deriving ( Show )
183183
184184-- Styles from a monoid under union
185−#if MIN_VERSION_base(4,9,0)
186185instance Semigroup Styles where
187186 (Styles sBn1 dSm1 lsBn1) <> (Styles sBn2 dSm2 lsBn2)
188187 = Styles (M.union sBn1 sBn2)
@@ -191,15 +190,6 @@ instance Semigroup Styles where
191190instance Monoid Styles where
192191 mempty = Styles M.empty M.empty M.empty
193192 mappend = (<>)
194−#else
195−instance Monoid Styles where
196− mempty = Styles M.empty M.empty M.empty
197− mappend (Styles sBn1 dSm1 lsBn1)
198− (Styles sBn2 dSm2 lsBn2)
199− = Styles (M.union sBn1 sBn2)
200− (M.union dSm1 dSm2)
201− (M.union lsBn1 lsBn2)
202−#endif
203193
204194-- Not all families from the specifications are implemented, only those we need.
205195-- But there are none that are not mentioned here.
src/Text/Pandoc/Readers/Org/Blocks.hs−1
@@ -51,7 +51,6 @@ import Data.Char (isSpace, toLower, toUpper)
5151import Data.Default (Default)
5252import Data.List (foldl', isPrefixOf)
5353import Data.Maybe (fromMaybe, isJust, isNothing)
54−import Data.Monoid ((<>))
5554
5655import qualified Text.Pandoc.Builder as B
5756import qualified Text.Pandoc.Walk as Walk
src/Text/Pandoc/Readers/Org/DocumentTree.hs−1
@@ -36,7 +36,6 @@ import Control.Arrow ((***))
3636import Control.Monad (guard, void)
3737import Data.Char (toLower, toUpper)
3838import Data.List (intersperse)
39−import Data.Monoid ((<>))
4039import Text.Pandoc.Builder (Blocks, Inlines)
4140import Text.Pandoc.Class (PandocMonad)
4241import Text.Pandoc.Definition
src/Text/Pandoc/Readers/Org/Inlines.hs−1
@@ -55,7 +55,6 @@ import Data.Char (isAlphaNum, isSpace)
5555import Data.List (intersperse)
5656import qualified Data.Map as M
5757import Data.Maybe (fromMaybe)
58−import Data.Monoid
5958import Data.Traversable (sequence)
6059import Prelude hiding (sequence)
6160
src/Text/Pandoc/Readers/RST.hs−1
@@ -40,7 +40,6 @@ import Data.List (deleteFirstsBy, elemIndex, intercalate, isInfixOf, isSuffixOf,
4040 nub, sort, transpose, union)
4141import qualified Data.Map as M
4242import Data.Maybe (fromMaybe, isJust)
43−import Data.Monoid ((<>))
4443import Data.Sequence (ViewR (..), viewr)
4544import Data.Text (Text)
4645import qualified Data.Text as T
src/Text/Pandoc/Readers/Textile.hs−1
@@ -56,7 +56,6 @@ import Control.Monad (guard, liftM)
5656import Control.Monad.Except (throwError)
5757import Data.Char (digitToInt, isUpper)
5858import Data.List (intercalate, intersperse, transpose)
59−import Data.Monoid ((<>))
6059import Data.Text (Text)
6160import qualified Data.Text as T
6261import Text.HTML.TagSoup (Tag (..), fromAttrib)
src/Text/Pandoc/Readers/Txt2Tags.hs+1−2
@@ -38,7 +38,6 @@ import Data.Char (toLower)
3838import Data.Default
3939import Data.List (intercalate, transpose)
4040import Data.Maybe (fromMaybe)
41−import Data.Monoid ((<>))
4241import Data.Text (Text)
4342import qualified Data.Text as T
4443import Data.Time.Format (formatTime)
@@ -444,7 +443,7 @@ inlineMarkup p f c special = try $ do
444443 let end' = case drop 2 end of
445444 "" -> mempty
446445 xs -> special xs
447− return $ f (start' <> body' <> end')
446+ return $ f (start' `mappend` body' `mappend` end')
448447 Nothing -> do -- Either bad or case such as *****
449448 guard (l >= 5)
450449 let body' = replicate (l - 4) c
src/Text/Pandoc/Readers/Vimwiki.hs−1
@@ -69,7 +69,6 @@ import Control.Monad.Except (throwError)
6969import Data.Default
7070import Data.List (isInfixOf, isPrefixOf)
7171import Data.Maybe
72−import Data.Monoid
7372import Data.Text (Text, unpack)
7473import Text.Pandoc.Builder (Blocks, Inlines, fromList, toList, trimInlines)
7574import qualified Text.Pandoc.Builder as B (blockQuote, bulletList, code,
src/Text/Pandoc/SelfContained.hs−1
@@ -41,7 +41,6 @@ import qualified Data.ByteString.Char8 as B
4141import qualified Data.ByteString.Lazy as L
4242import Data.Char (isAlphaNum, isAscii, toLower)
4343import Data.List (isPrefixOf)
44−import Data.Monoid ((<>))
4544import Network.URI (escapeURIString)
4645import System.FilePath (takeDirectory, takeExtension, (</>))
4746import Text.HTML.TagSoup
src/Text/Pandoc/Shared.hs+2−3
@@ -111,7 +111,6 @@ import Data.Data (Data, Typeable)
111111import Data.List (find, intercalate, intersperse, stripPrefix)
112112import qualified Data.Map as M
113113import Data.Maybe (mapMaybe)
114−import Data.Monoid ((<>))
115114import Data.Sequence (ViewL (..), ViewR (..), viewl, viewr)
116115import qualified Data.Set as Set
117116import qualified Data.Text as T
@@ -447,7 +446,7 @@ instance Walkable Inline Element where
447446 elts' <- walkM f elts
448447 return $ Sec lev nums attr ils' elts'
449448 query f (Blk x) = query f x
450− query f (Sec _ _ _ ils elts) = query f ils <> query f elts
449+ query f (Sec _ _ _ ils elts) = query f ils `mappend` query f elts
451450
452451instance Walkable Block Element where
453452 walk f (Blk x) = Blk (walk f x)
@@ -458,7 +457,7 @@ instance Walkable Block Element where
458457 elts' <- walkM f elts
459458 return $ Sec lev nums attr ils' elts'
460459 query f (Blk x) = query f x
461− query f (Sec _ _ _ ils elts) = query f ils <> query f elts
460+ query f (Sec _ _ _ ils elts) = query f ils `mappend` query f elts
462461
463462
464463-- | Convert Pandoc inline list to plain text identifier. HTML
src/Text/Pandoc/Translations.hs−4
@@ -81,11 +81,7 @@ data Term =
8181 deriving (Show, Eq, Ord, Generic, Enum, Read)
8282
8383newtype Translations = Translations (M.Map Term String)
84−#if MIN_VERSION_base(4,9,0)
8584 deriving (Show, Generic, Semigroup, Monoid)
86−#else
87− deriving (Show, Generic, Monoid)
88−#endif
8985
9086instance FromJSON Term where
9187 parseJSON (String t) = case safeRead (T.unpack t) of
src/Text/Pandoc/Writers/CommonMark.hs+1−1
@@ -36,7 +36,7 @@ import CMarkGFM
3636import Control.Monad.State.Strict (State, get, modify, runState)
3737import Data.Foldable (foldrM)
3838import Data.List (transpose)
39−import Data.Monoid (Any (..), (<>))
39+import Data.Monoid (Any (..))
4040import Data.Text (Text)
4141import qualified Data.Text as T
4242import Network.HTTP (urlEncode)
src/Text/Pandoc/Writers/HTML.hs−1
@@ -49,7 +49,6 @@ import Control.Monad.State.Strict
4949import Data.Char (ord, toLower)
5050import Data.List (intercalate, intersperse, isPrefixOf, partition)
5151import Data.Maybe (catMaybes, fromMaybe, isJust, isNothing)
52−import Data.Monoid ((<>))
5352import qualified Data.Set as Set
5453import Data.String (fromString)
5554import Data.Text (Text)
src/Text/Pandoc/Writers/OOXML.hs−1
@@ -45,7 +45,6 @@ import qualified Data.ByteString as B
4545import qualified Data.ByteString.Lazy as BL
4646import qualified Data.ByteString.Lazy.Char8 as BL8
4747import Data.Maybe (mapMaybe)
48−import Data.Monoid ((<>))
4948import Text.Pandoc.Class (PandocMonad)
5049import qualified Text.Pandoc.UTF8 as UTF8
5150import Text.XML.Light as XML