Fix imports to avoid warning about foldl'.

`foldl'` is exported by Prelude by base 4.20+.  So we need to do
some qualified importing to avoid warnings about redundant imports.
This commit is contained in:
John MacFarlane
2025-12-12 10:32:17 +01:00
parent ff3eda71eb
commit d5e100eec2
27 changed files with 84 additions and 75 deletions
+3 -2
View File
@@ -31,7 +31,8 @@ import Data.Aeson.Encode.Pretty (encodePretty', Config(..), keyOrder,
defConfig, Indent(..), NumberFormat(..))
import Data.Bifunctor (second)
import Data.Char (toLower)
import Data.List (intercalate, sort, foldl')
import Data.List (intercalate, sort)
import qualified Data.List as L
#ifdef _WINDOWS
import Data.List (isPrefixOf)
#endif
@@ -100,7 +101,7 @@ parseOptionsFromArgs options' defaults prg rawArgs = do
if (null errors && null unknownOptionErrors)
then -- thread option data structure through all supplied option actions
runExceptT $ adjustOpts <$> (foldl' (>>=) (return defaults) actions)
runExceptT $ adjustOpts <$> (L.foldl' (>>=) (return defaults) actions)
else return $ Left $ OptError $ PandocOptionError $ T.pack $
concat errors ++ unlines unknownOptionErrors ++
("Try " ++ prg ++ " --help for more information.")
+3 -2
View File
@@ -52,7 +52,8 @@ import qualified Data.Sequence as Seq
import Data.Char (isAlphaNum, isDigit, isLetter,
isUpper, toLower, toUpper,
isLower, isPunctuation, isSpace)
import Data.List (foldl', intercalate, intersperse)
import Data.List (intercalate, intersperse)
import qualified Data.List as L
import Safe (readMay)
import Text.Printf (printf)
import Text.DocLayout (literal, hsep, nest, hang, Doc(..),
@@ -1115,7 +1116,7 @@ toLiteralList [Plain xs] = toLiteralList [Para xs]
toLiteralList _ = mzero
concatWith :: Char -> [Inlines] -> Inlines
concatWith sep = foldl' go mempty
concatWith sep = L.foldl' go mempty
where go :: Inlines -> Inlines -> Inlines
go accum s
| s == mempty = accum
+2 -2
View File
@@ -11,7 +11,7 @@ import Citeproc.Types
import Text.Pandoc.Citeproc.Util (splitStrWhen)
import Data.Text (Text)
import qualified Data.Text as T
import Data.List (foldl')
import qualified Data.List as L
import Text.Pandoc.Definition
import Text.Pandoc.Parsing
import Text.Pandoc.Shared (stringify)
@@ -196,7 +196,7 @@ pBalancedBraces braces p = try $ do
where
except = notFollowedBy pBraces >> p
-- outer and inner
surround = foldl' (\a (open, close) -> sur open close except <|> a)
surround = L.foldl' (\a (open, close) -> sur open close except <|> a)
except
braces
+2 -2
View File
@@ -30,7 +30,7 @@ import Text.Pandoc.Citeproc.Util (splitStrWhen)
import qualified Data.Text as T
import Data.List.Split (splitWhen, wordsBy)
import Data.Char (isUpper, isDigit)
import Data.List (foldl')
import qualified Data.List as L
emptyName :: Name
emptyName =
@@ -83,7 +83,7 @@ toName _ ils@(Str ys:_) | T.any (== '=') ys = do
ag{ nameSuffix = Just $ stringify xs }
addPart ag (Space : xs) = addPart ag xs
addPart ag _ = ag
return $ foldl' addPart emptyName commaParts
return $ L.foldl' addPart emptyName commaParts
-- First von Last
-- von Last, First
-- von Last, Jr ,First
+2 -2
View File
@@ -22,7 +22,7 @@ module Text.Pandoc.Format
import Control.Monad.Except (throwError)
import Data.Char (toLower)
import Data.Foldable (asum)
import Data.List (foldl')
import qualified Data.List as L
import System.FilePath (splitExtension, takeExtension)
import Text.Pandoc.Class (PandocMonad)
import Text.Pandoc.Error (PandocError (..))
@@ -142,7 +142,7 @@ parseFlavoredFormat spec =
pExtensionsDiff :: (UpdateSourcePos s Char, Stream s m Char)
=> ParsecT s u m ExtensionsDiff
pExtensionsDiff = foldl' (flip ($)) mempty <$> many extMod
pExtensionsDiff = L.foldl' (flip ($)) mempty <$> many extMod
where
extMod = do
polarity <- oneOf "-+"
+3 -3
View File
@@ -37,7 +37,7 @@ import Text.Pandoc.Parsing (newPos, sourceName)
import Text.Pandoc.Logging
import Text.Pandoc.Sources
import Control.Monad.State
import Data.List (intersperse, foldl')
import qualified Data.List as L
import Data.Char (chr, ord)
import qualified Data.Text as T
import qualified Data.Map as M
@@ -148,7 +148,7 @@ doMeta meta = do
B.setMeta "version" vers .
maybe id (B.setMeta "date") mbdate .
maybe id (B.setMeta "remark") mbremark) .
flip (foldl' (\m (k,v) ->
flip (L.foldl' (\m (k,v) ->
-- leave out flags that are set just for processing
if k == "sectids" || k == "stem"
then m
@@ -363,7 +363,7 @@ doInline (A.Inline (A.Attr _ps kvs') it) = do
(B.str ("[" <> t <> "]"))
A.Button t -> pure $ B.spanWith ("",["button"],[])
(B.strong $ B.str ("[" <> t <> "]"))
A.Kbd ts -> pure $ mconcat $ intersperse (B.str "+") $
A.Kbd ts -> pure $ mconcat $ L.intersperse (B.str "+") $
map (B.spanWith ("",["kbd"],[]) . B.strong . B.str) ts
A.Menu ts -> pure $ B.spanWith ("",["menu"],[]) $
B.strong $ B.text $ T.intercalate "  " ts
+1 -2
View File
@@ -37,7 +37,6 @@ import Text.Pandoc.Logging
import Text.Pandoc.Emoji (emojiToInline)
import Control.Monad.Reader
import qualified Data.Foldable as F
import Data.List (foldl')
import Data.ByteString (ByteString)
-- import Debug.Trace
@@ -141,7 +140,7 @@ convertBlock (D.Node pos attr bl) = addAttrToBlock pos attr <$>
(hs,bs):rs -> (hs,row:bs):rs
[] -> [([],[row])]
let reverseSnd (as,bs) = (as,reverse bs)
let bodies = reverse $ map reverseSnd $ foldl' getBody [] rest
let bodies = reverse $ map reverseSnd $ F.foldl' getBody [] rest
let toCell (D.Cell _ al ils) =
Cell nullAttr (toAlign al) (RowSpan 1) (ColSpan 1)
. (\is -> [Para $ toList is]) <$> convertInlines ils
+4 -3
View File
@@ -74,7 +74,8 @@ import Control.Monad.State.Strict
import Data.Bifunctor (bimap, first)
import qualified Data.ByteString.Lazy as B
import Data.Default (Default)
import Data.List (delete, intersect, foldl')
import Data.List (delete, intersect)
import qualified Data.List as L
import Data.Char (isSpace)
import qualified Data.Map as M
import qualified Data.Text as T
@@ -625,8 +626,8 @@ rowsToRows rows = do
splitHeaderRows :: Bool -> [Docx.Row] -> ([Docx.Row], [Docx.Row])
splitHeaderRows hasFirstRowFormatting rs = bimap reverse reverse $ fst
$ if hasFirstRowFormatting
then foldl' f ((take 1 rs, []), True) (drop 1 rs)
else foldl' f (([], []), False) rs
then L.foldl' f ((take 1 rs, []), True) (drop 1 rs)
else L.foldl' f (([], []), False) rs
where
f ((headerRows, bodyRows), previousRowWasHeader) r@(Docx.Row h cs)
| h == HasTblHeader || (previousRowWasHeader && any isContinuationCell cs)
+4 -4
View File
@@ -33,7 +33,7 @@ import Data.Char (isAlphaNum, isLetter)
import Data.Default (Default (..), def)
import Data.Foldable (for_)
import Data.List.Split (splitWhen)
import Data.List (foldl')
import qualified Data.List as L
import qualified Data.Map as M
import Data.Maybe (fromMaybe, isJust, isNothing)
import Data.Either (partitionEithers)
@@ -444,9 +444,9 @@ pDefListItem = try $ do
terms <- many1 (try $ skipMany nonItem >> pInTags "dt" inline)
defs <- many1 (try $ skipMany nonItem >> pInTags "dd" block)
skipMany nonItem
let term = foldl' (\x y -> if null x
then trimInlines y
else x <> B.linebreak <> trimInlines y)
let term = L.foldl' (\x y -> if null x
then trimInlines y
else x <> B.linebreak <> trimInlines y)
mempty terms
return (term, map (fixPlains True) defs)
+3 -3
View File
@@ -20,7 +20,7 @@ import Control.Applicative ((<|>))
import Data.Maybe (fromMaybe, isJust)
import Data.Either (lefts, rights)
import Data.List.NonEmpty (nonEmpty)
import Data.List (foldl')
import qualified Data.List as L
import Data.Text (Text)
import Text.HTML.TagSoup
import Text.Pandoc.Builder (Blocks)
@@ -204,9 +204,9 @@ pTableBody block = try $ do
let adjustRowHeadCols
headcolsv
(currentrow, (numheads, Row _ cells)) =
foldl' (adjustRowHeadColsForCell currentrow) headcolsv
L.foldl' (adjustRowHeadColsForCell currentrow) headcolsv
(take numheads cells)
let headcols = foldl' adjustRowHeadCols
let headcols = L.foldl' adjustRowHeadCols
(V.replicate numrows (0 :: Int))
(zip [(0 :: Int)..] rows)
let rowHeadCols = case V.uncons headcols of
+4 -4
View File
@@ -21,7 +21,7 @@ import Text.Pandoc.Error (PandocError(..))
import Data.Char (isDigit, isSpace)
import Data.Default
import Data.Generics
import Data.List (foldl', intersperse)
import qualified Data.List as L
import qualified Data.Map as Map
import Data.Maybe (maybeToList, fromMaybe, catMaybes)
import Data.Text (Text)
@@ -290,11 +290,11 @@ parseBlock (Elem e) = do
let items = filterChildren (named "def") e'
terms' <- mapM getInlines terms
items' <- mapM getBlocks items
return (mconcat $ intersperse (str "; ") terms', items')
return (mconcat $ L.intersperse (str "; ") terms', items')
parseFigure = do
modify $ \st -> st{ jatsInFigure = True }
capt <- case filterChild (named "caption") e of
Just t -> mconcat . intersperse linebreak <$>
Just t -> mconcat . L.intersperse linebreak <$>
mapM getInlines (filterChildren (const True) t)
Nothing -> return mempty
contents <- getBlocks e
@@ -350,7 +350,7 @@ parseBlock (Elem e) = do
n <- safeRead $ "0" <> T.filter (\x -> isDigit x || x == '.') w
if n > 0 then Just n else Nothing
let firstBody = fromMaybe [] (headMay multipleBodyRowElements)
let numrows = foldl' max 0 $ map length firstBody
let numrows = L.foldl' max 0 $ map length firstBody
let aligns = case colspecs of
[] -> replicate numrows AlignDefault
cs -> map toAlignment cs
+2 -2
View File
@@ -14,7 +14,7 @@ module Text.Pandoc.Readers.LaTeX.Math
)
where
import Data.Maybe (fromMaybe, mapMaybe, listToMaybe)
import Data.List (foldl')
import qualified Data.List as L
import Text.Pandoc.Walk (walk)
import Text.Pandoc.Builder as B
import qualified Data.Sequence as Seq
@@ -160,7 +160,7 @@ newtheorem inline = do
extractLabelFromBlock :: Block -> Maybe Text
extractLabelFromBlock (Para inlines) = extractLabel Nothing inlines
where
extractLabel = foldl' go
extractLabel = L.foldl' go
go :: Maybe Text -> Inline -> Maybe Text
go (Just t) _ = Just t
go Nothing (Span (_, _, attrs) _) = lookup "label" attrs
+4 -3
View File
@@ -24,7 +24,8 @@ import Control.Monad
import Control.Monad.Except (throwError)
import qualified Data.Bifunctor as Bifunctor
import Data.Char (isAlphaNum, isPunctuation, isSpace)
import Data.List (transpose, elemIndex, sortOn, foldl')
import Data.List (transpose, elemIndex, sortOn)
import qualified Data.List as L
import qualified Data.Map as M
import Data.Maybe
import qualified Data.Set as Set
@@ -388,7 +389,7 @@ referenceKey = try $ do
addKvs <- option [] $ guardEnabled Ext_mmd_link_attributes
>> many (try $ spnl >> keyValAttr)
blanklines
let attr' = extractIdClass $ foldl' (\x f -> f x) attr addKvs
let attr' = extractIdClass $ L.foldl' (\x f -> f x) attr addKvs
target = (escapeURI $ trimr src, tit)
st <- getState
let oldkeys = stateKeys st
@@ -648,7 +649,7 @@ attributes = try $ do
spnl
attrs <- many (attribute <* spnl)
char '}'
return $ foldl' (\x f -> f x) nullAttr attrs
return $ L.foldl' (\x f -> f x) nullAttr attrs
attribute :: PandocMonad m => MarkdownParser m (Attr -> Attr)
attribute = identifierAttr <|> classAttr <|> keyValAttr <|> specialAttr
@@ -36,7 +36,6 @@ module Text.Pandoc.Readers.ODT.Arrows.State
import Control.Arrow
import qualified Control.Category as Cat
import Control.Monad
import Data.Foldable
import Text.Pandoc.Readers.ODT.Arrows.Utils
import Text.Pandoc.Readers.ODT.Generic.Fallible
@@ -64,7 +64,7 @@ import qualified Data.Map as M
import Data.Text (Text)
import Data.Default
import Data.Maybe
import Data.List (foldl')
import qualified Data.List as L
import qualified Data.List.NonEmpty as NonEmpty
import Data.List.NonEmpty (NonEmpty(..))
@@ -298,7 +298,7 @@ readNSattributes = fromState $ \state -> maybe (state, failEmpty )
=> XMLConverterState nsID extraState
-> Maybe (XMLConverterState nsID extraState)
extractNSAttrs startState
= foldl' (\state d -> state >>= addNS d)
= L.foldl' (\state d -> state >>= addNS d)
(Just startState)
nsAttribs
where nsAttribs = mapMaybe readNSattr (XML.elAttribs element)
+3 -3
View File
@@ -45,7 +45,7 @@ import Control.Arrow
import Data.Default
import qualified Data.Foldable as F
import Data.List (unfoldr, foldl')
import qualified Data.List as L
import qualified Data.Map as M
import Data.Maybe
import Data.Text (Text)
@@ -121,7 +121,7 @@ fontPitchReader = executeInSub NsOffice "font-face-decls" (
&&&
lookupDefaultingAttr NsStyle "font-pitch"
))
>>?^ ( M.fromList . foldl' accumLegalPitches [] )
>>?^ ( M.fromList . L.foldl' accumLegalPitches [] )
) `ifFailedDo` returnV (Right M.empty)
where accumLegalPitches ls (Nothing,_) = ls
accumLegalPitches ls (Just n,p) = (n,p):ls
@@ -603,7 +603,7 @@ lookupListStyleByName name Styles{..} = M.lookup name listStylesByName
-- be the first element of the list, followed by its parent and so on.
-- The current style is not in the list.
parents :: Style -> Styles -> [Style]
parents style styles = unfoldr findNextParent style -- Ha!
parents style styles = L.unfoldr findNextParent style -- Ha!
where findNextParent Style{..}
= fmap duplicate $ (`lookupStyle` styles) =<< styleParentName
+4 -4
View File
@@ -38,7 +38,7 @@ import Data.Bifunctor (bimap)
import Data.Char (isSpace)
import Data.Default (Default)
import Data.Functor (($>))
import Data.List (find, foldl')
import qualified Data.List as L
import Data.Maybe (fromMaybe, isJust, isNothing)
import Data.Text (Text)
import Data.List.NonEmpty (nonEmpty)
@@ -130,9 +130,9 @@ blockAttributes :: PandocMonad m => OrgParser m BlockAttributes
blockAttributes = try $ do
kv <- many stringyMetaAttribute
guard $ all (isBlockAttr . fst) kv
let caption = foldl' (appendValues "caption") Nothing kv
let kvAttrs = foldl' (appendValues "attr_html") Nothing kv
let name = snd <$> find ((`elem` ["name", "label"]) . fst) (reverse kv)
let caption = L.foldl' (appendValues "caption") Nothing kv
let kvAttrs = L.foldl' (appendValues "attr_html") Nothing kv
let name = snd <$> L.find ((`elem` ["name", "label"]) . fst) (reverse kv)
caption' <- traverse (parseFromString inlines . (<> "\n")) caption
kvAttrs' <- parseFromString keyValues . (<> "\n") $ fromMaybe mempty kvAttrs
return BlockAttributes
+2 -2
View File
@@ -23,7 +23,7 @@ import Text.Pandoc.Options
import Text.Pandoc.Definition
import Text.Pandoc.Parsing
import Data.Char (isAsciiUpper, isDigit, isSpace, ord, chr)
import Data.List (foldl')
import qualified Data.List as L
import Citeproc (Reference(..), ItemId(..), Val(..), Date(..), DateParts(..),
toVariable)
import Text.Pandoc.Builder as B
@@ -185,7 +185,7 @@ risReferences = do
return $ fixDuplicateIds $ map risRecordToReference recs
fixDuplicateIds :: [Reference Text] -> [Reference Text]
fixDuplicateIds = reverse . snd . foldl' go (mempty, [])
fixDuplicateIds = reverse . snd . L.foldl' go (mempty, [])
where
go (ids_seen, refs) ref =
case M.lookup (referenceId ref) ids_seen of
+5 -5
View File
@@ -20,7 +20,7 @@ import qualified Data.Sequence as Seq
import Control.Monad
import Control.Monad.Except (throwError)
import Crypto.Hash (hashWith, SHA1(SHA1))
import Data.List (find, foldl')
import qualified Data.List as L
import Data.Word (Word8, Word16)
import Data.Default
import Data.Text (Text)
@@ -895,7 +895,7 @@ parseStyle (Tok _ (Grouped toks)) = do
_ -> mempty
let isBasedOn (Tok _ (ControlWord "sbasedon" (Just _))) = True
isBasedOn _ = False
let styBasedOn = case find isBasedOn toks of
let styBasedOn = case L.find isBasedOn toks of
Just (Tok _ (ControlWord "sbasedon" (Just i))) -> Just i
_ -> Nothing
let isStyleControl (Tok _ (ControlWord x _)) =
@@ -920,7 +920,7 @@ hexToWord t = case TR.hexadecimal t of
handlePict :: PandocMonad m => [Tok] -> RTFParser m ()
handlePict toks = do
let pict = foldl' getPictData def toks
let pict = L.foldl' getPictData def toks
let altText = "image"
let bytes =
if picBinary pict
@@ -959,7 +959,7 @@ handlePict toks = do
processFontTable :: [Tok] -> FontTable
processFontTable = snd . foldl' go (0, mempty)
processFontTable = snd . L.foldl' go (0, mempty)
where
go (fontnum, tbl) (Tok _ tok') =
case tok' of
@@ -972,7 +972,7 @@ processFontTable = snd . foldl' go (0, mempty)
(ControlWord "fdecor" _) -> (fontnum, IntMap.insert fontnum Decor tbl)
(ControlWord "ftech" _) -> (fontnum, IntMap.insert fontnum Tech tbl)
(ControlWord "fbidi" _) -> (fontnum, IntMap.insert fontnum Bidi tbl)
(Grouped ts) -> foldl' go (fontnum, tbl) ts
(Grouped ts) -> L.foldl' go (fontnum, tbl) ts
_ -> (fontnum, tbl)
defaultAnsiWordToChar :: Word8 -> Char
+3 -2
View File
@@ -38,7 +38,8 @@ module Text.Pandoc.Readers.Textile ( readTextile) where
import Control.Monad (guard, liftM)
import Control.Monad.Except (throwError)
import Data.Char (digitToInt, isUpper)
import Data.List (intersperse, transpose, foldl')
import Data.List (intersperse, transpose)
import qualified Data.List as L
import Data.List.NonEmpty (NonEmpty(..), nonEmpty)
import qualified Data.Map as M
import Data.Text (Text)
@@ -732,7 +733,7 @@ orderedListStartAttr = do
-- | Html / CSS attributes
attributes :: PandocMonad m => TextileParser m Attr
attributes = foldl' (flip ($)) ("",[],[]) <$>
attributes = L.foldl' (flip ($)) ("",[],[]) <$>
try (do special <- option id specialAttribute
attrs <- many attribute
return (special : attrs))
+4 -3
View File
@@ -91,7 +91,8 @@ import Data.Containers.ListUtils (nubOrd)
import Data.Char (isAlpha, isLower, isSpace, isUpper, toLower, isAlphaNum,
generalCategory, GeneralCategory(NonSpacingMark,
SpacingCombiningMark, EnclosingMark, ConnectorPunctuation))
import Data.List (find, foldl', groupBy, intercalate, intersperse, union)
import Data.List (find, groupBy, intercalate, intersperse, union)
import qualified Data.List as L
import qualified Data.Map as M
import Data.Maybe (mapMaybe)
import Data.Monoid (Any (..) )
@@ -746,7 +747,7 @@ inDirectory path action = E.bracket
-- | Canonicalizes a file path by removing redundant @.@ and @..@.
makeCanonical :: FilePath -> FilePath
makeCanonical = Posix.joinPath . transformPathParts . splitDirectories
where transformPathParts = reverse . foldl' go []
where transformPathParts = reverse . L.foldl' go []
go as "." = as
go ("..":as) ".." = ["..", ".."] <> as
go (_:as) ".." = as
@@ -762,7 +763,7 @@ makeCanonical = Posix.joinPath . transformPathParts . splitDirectories
-- > collapseFilePath "parent/foo/.." == "parent"
-- > collapseFilePath "/parent/foo/../../bar" == "/bar"
collapseFilePath :: FilePath -> FilePath
collapseFilePath = Posix.joinPath . reverse . foldl' go [] . splitDirectories
collapseFilePath = Posix.joinPath . reverse . L.foldl' go [] . splitDirectories
where
go rs "." = rs
go r@(p:rs) ".." = case p of
+7 -6
View File
@@ -35,7 +35,8 @@ import Control.Monad.State.Strict
import Control.Monad ( liftM, when, foldM, unless )
import Control.Monad.Trans ( MonadTrans(lift) )
import Data.Char (ord, isSpace, isAscii)
import Data.List (intercalate, intersperse, partition, delete, (\\), foldl')
import Data.List (intercalate, intersperse, partition, delete, (\\))
import qualified Data.List as L
import Data.List.NonEmpty (NonEmpty((:|)))
import Data.Containers.ListUtils (nubOrd)
import Data.Maybe (fromMaybe, isJust, isNothing)
@@ -125,7 +126,7 @@ defaultWriterState = WriterState {stNotes= [],
strToHtml :: Text -> Html
strToHtml t
| T.any isSpecial t =
let !x = foldl' go mempty $ T.groupBy samegroup t
let !x = L.foldl' go mempty $ T.groupBy samegroup t
in x
| otherwise = toHtml t
where
@@ -674,7 +675,7 @@ tagWithAttributes opts html5 selfClosing tagname attr =
addAttrs :: PandocMonad m
=> WriterOptions -> Attr -> Html -> StateT WriterState m Html
addAttrs opts attr h = foldl' (!) h <$> attrsToHtml opts attr
addAttrs opts attr h = L.foldl' (!) h <$> attrsToHtml opts attr
toAttrs :: PandocMonad m
=> [(Text, Text)] -> StateT WriterState m [Attribute]
@@ -1046,7 +1047,7 @@ blockToHtmlInner opts (OrderedList (startnum, numstyle, _) lst) = do
numstyle']
else [])
l <- ordList opts contents
return $ foldl' (!) l attribs
return $ L.foldl' (!) l attribs
blockToHtmlInner opts (DefinitionList lst) = do
contents <- mapM (\(term, defs) ->
do term' <- liftM H.dt $ inlineListToHtml opts term
@@ -1413,7 +1414,7 @@ inlineToHtml opts inline = do
= Just (t . H.u, cs)
| otherwise
= Just (t, c:cs)
spanLikeTags = foldl' go Nothing
spanLikeTags = L.foldl' go Nothing
in case spanLikeTags classes of
Just (tag, cs) -> do
h <- inlineListToHtml opts ils
@@ -1610,7 +1611,7 @@ inlineToHtml opts inline = do
Just "audio" -> mediaTag H5.audio "Audio"
Just _ -> (H5.embed, [])
_ -> imageTag
return $ foldl' (!) tag $ attributes ++ specAttrs
return $ L.foldl' (!) tag $ attributes ++ specAttrs
-- note: null title included, as in Markdown.pl
(Note contents) -> do
notes <- gets stNotes
+3 -3
View File
@@ -21,7 +21,7 @@ import qualified Data.Text as T
import Text.Pandoc.Options
import Text.Pandoc.Class.PandocMonad (PandocMonad)
import Text.Pandoc.Definition
import Data.List (foldl')
import qualified Data.List as L
import Text.DocLayout (Doc, brackets, empty, (<+>), text, isEmpty, literal,
braces)
import Text.Pandoc.Walk
@@ -73,7 +73,7 @@ citationsToNatbib inlineListToLaTeX (c:cs)
citationsToNatbib inlineListToLaTeX cits = do
cits' <- mapM convertOne cits
return $ text "\\citetext{" <> foldl' combineTwo empty cits' <> text "}"
return $ text "\\citetext{" <> L.foldl' combineTwo empty cits' <> text "}"
where
citeCommand' = citeCommand inlineListToLaTeX
combineTwo a b | isEmpty a = b
@@ -182,7 +182,7 @@ citationsToBiblatex inlineListToLaTeX (c:cs)
NormalCitation -> "\\autocites"
groups <- mapM (citeArgumentsList inlineListToLaTeX)
(reverse (foldl' grouper [] (c:cs)))
(reverse (L.foldl' grouper [] (c:cs)))
return $ text cmd <> mconcat groups
+3 -2
View File
@@ -19,7 +19,8 @@ import Control.Monad (unless, liftM)
import Control.Monad.State.Strict ( StateT(..), modify, gets, lift )
import Data.Char (chr)
import Data.Foldable (find)
import Data.List (sortOn, sortBy, foldl')
import Data.List (sortOn, sortBy)
import qualified Data.List as L
import qualified Data.Map as Map
import Data.Ord (comparing, Down (Down))
import qualified Data.Set as Set
@@ -175,7 +176,7 @@ inTextStyle d = do
,("style:family", "text")]
$ selfClosingTag "style:text-properties"
(sortOn fst . Map.toList
$ foldl' textStyleAttr mempty (Set.toList at)))
$ L.foldl' textStyleAttr mempty (Set.toList at)))
return $ inTags False
"text:span" [("text:style-name",styleName)] d
+3 -2
View File
@@ -20,7 +20,8 @@ import Data.Char (isSpace, generalCategory, isAscii, isAlphaNum,
GeneralCategory(
ClosePunctuation, OpenPunctuation, InitialQuote,
FinalQuote, DashPunctuation, OtherPunctuation))
import Data.List (transpose, intersperse, foldl')
import Data.List (transpose, intersperse)
import qualified Data.List as L
import qualified Data.List.NonEmpty as NE
import Data.Maybe (fromMaybe)
import qualified Data.Text as T
@@ -674,7 +675,7 @@ flatten outer
| null contents = [outer]
| otherwise = combineAll contents
where contents = dropInlineParent outer
combineAll = foldl' combine []
combineAll = L.foldl' combine []
combine :: [Inline] -> Inline -> [Inline]
combine f i =
+5 -4
View File
@@ -63,7 +63,8 @@ import Control.Monad (MonadPlus, mzero)
import Data.Either (isRight)
import Data.Aeson (ToJSON (..), encode)
import Data.Char (chr, ord, isSpace, isLetter, isUpper)
import Data.List (groupBy, intersperse, foldl', transpose)
import Data.List (groupBy, intersperse, transpose)
import qualified Data.List as L
import Data.List.NonEmpty (NonEmpty((:|)))
import Data.Text.Conversions (FromText(..))
import qualified Data.Map as M
@@ -381,7 +382,7 @@ makeDummy c =
cellTopBorder = NoLine }
addDummies :: [[RenderedCell Text]] -> [[RenderedCell Text]]
addDummies = reverse . foldl' go []
addDummies = reverse . L.foldl' go []
where
go [] cs = [cs]
go (prevRow:rs) cs = addDummiesToRow prevRow cs : prevRow : rs
@@ -468,7 +469,7 @@ combineBorders t1 t2 =
formatHeaderLine :: Show a => LineStyle -> [[RenderedCell a]] -> Doc Text
formatHeaderLine lineStyle rows =
literal $ foldl'
literal $ L.foldl'
(\t row -> combineBorders t (render Nothing $ formatBorder (const lineStyle) True row))
mempty rows
@@ -479,7 +480,7 @@ formatBorder borderStyle alignMarkers cs =
then char '|'
else char '+'
where
(lastBorderStyle, borderParts) = foldl' addBorder (NoLine, mempty) cs
(lastBorderStyle, borderParts) = L.foldl' addBorder (NoLine, mempty) cs
addBorder (prevBorderStyle, accum) c =
(borderStyle c, accum <> char junctionChar <> toBorderSection c)
where junctionChar = case (borderStyle c, prevBorderStyle) of
+3 -2
View File
@@ -17,7 +17,8 @@ import Control.Monad.Except (throwError)
import Control.Monad.State.Strict
( StateT, MonadState(get), gets, modify, evalStateT )
import Data.Char (chr, ord, isAlphaNum)
import Data.List (maximumBy, transpose, foldl')
import Data.List (maximumBy, transpose)
import qualified Data.List as L
import Data.List.NonEmpty (nonEmpty)
import Data.Ord (comparing)
import qualified Data.Map as M
@@ -347,7 +348,7 @@ tableAnyRowToTexinfo :: PandocMonad m
-> [[Block]]
-> TI m (Doc Text)
tableAnyRowToTexinfo itemtype aligns cols =
(literal itemtype $$) . foldl' (\row item -> row $$
(literal itemtype $$) . L.foldl' (\row item -> row $$
(if isEmpty row then empty else text " @tab ") <> item) empty <$> zipWithM alignedBlock aligns cols
alignedBlock :: PandocMonad m