Hello community,

here is the log from the commit of package ghc-pandoc-types for 
openSUSE:Factory checked in at 2019-08-29 17:21:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-pandoc-types (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-pandoc-types.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-pandoc-types"

Thu Aug 29 17:21:48 2019 rev:24 rq:726812 version:1.17.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-pandoc-types/ghc-pandoc-types.changes        
2019-06-19 21:12:44.818762710 +0200
+++ 
/work/SRC/openSUSE:Factory/.ghc-pandoc-types.new.7948/ghc-pandoc-types.changes  
    2019-08-29 17:21:50.643324216 +0200
@@ -1,0 +2,16 @@
+Sat Aug 24 02:01:25 UTC 2019 - psim...@suse.com
+
+- Update pandoc-types to version 1.17.6.
+  [1.17.6]
+
+    * Walk: export walk and query helpers (Albert Krewinkel) [API change].
+      The `walk*M` and `query*` functions are helpful when defining new
+      `Walkable` instances.
+    * Allow QuickCheck 2.13.
+    * Document meaning of Int in ListAttributes (#45).
+    * Update copyright year spans to include 2019 (Albert Krewinkel).
+    * Remove CPP instructions for GHC versions < 7.10 (Albert Krewinkel).
+    *  update list of GHC versions used for testing (Albert Krewinkel).
+    * Fix compiler and hlint warnings (Pete Ryland).
+
+-------------------------------------------------------------------

Old:
----
  pandoc-types-1.17.5.4.tar.gz
  pandoc-types.cabal

New:
----
  pandoc-types-1.17.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-pandoc-types.spec ++++++
--- /var/tmp/diff_new_pack.P3JLLH/_old  2019-08-29 17:21:51.091324142 +0200
+++ /var/tmp/diff_new_pack.P3JLLH/_new  2019-08-29 17:21:51.095324141 +0200
@@ -19,14 +19,13 @@
 %global pkg_name pandoc-types
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        1.17.5.4
+Version:        1.17.6
 Release:        0
 Summary:        Types for representing a structured document
 License:        GPL-2.0-only
 Group:          Development/Libraries/Haskell
 URL:            https://hackage.haskell.org/package/%{pkg_name}
 Source0:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
-Source1:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-QuickCheck-devel
 BuildRequires:  ghc-aeson-devel
@@ -76,7 +75,6 @@
 
 %prep
 %setup -q -n %{pkg_name}-%{version}
-cp -p %{SOURCE1} %{pkg_name}.cabal
 
 %build
 %ghc_lib_build

++++++ pandoc-types-1.17.5.4.tar.gz -> pandoc-types-1.17.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/LICENSE 
new/pandoc-types-1.17.6/LICENSE
--- old/pandoc-types-1.17.5.4/LICENSE   2018-10-23 19:04:13.000000000 +0200
+++ new/pandoc-types-1.17.6/LICENSE     2019-08-23 20:00:14.000000000 +0200
@@ -1,4 +1,4 @@
-Copyright (c) 2006-2016, John MacFarlane
+Copyright (c) 2006-2019, John MacFarlane
 
 All rights reserved.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/Text/Pandoc/Arbitrary.hs 
new/pandoc-types-1.17.6/Text/Pandoc/Arbitrary.hs
--- old/pandoc-types-1.17.5.4/Text/Pandoc/Arbitrary.hs  2018-10-23 
19:04:13.000000000 +0200
+++ new/pandoc-types-1.17.6/Text/Pandoc/Arbitrary.hs    2019-08-23 
20:00:14.000000000 +0200
@@ -1,5 +1,5 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, ScopedTypeVariables #-}
+{-# LANGUAGE FlexibleInstances, ScopedTypeVariables #-}
 -- provides Arbitrary instance for Pandoc types
 module Text.Pandoc.Arbitrary ()
 where
@@ -16,9 +16,9 @@
 arbAttr :: Gen Attr
 arbAttr = do
   id' <- elements ["","loc"]
-  classes <- elements [[],["haskell"],["c","numberLines"]]
+  classes' <- elements [[],["haskell"],["c","numberLines"]]
   keyvals <- elements [[],[("start","22")],[("a","11"),("b_2","a b c")]]
-  return (id',classes,keyvals)
+  return (id',classes',keyvals)
 
 instance Arbitrary Inlines where
   arbitrary = (fromList :: [Inline] -> Inlines) <$> arbitrary
@@ -129,7 +129,7 @@
                           , (10, Code <$> arbAttr <*> realString)
                           , (5,  elements [ RawInline (Format "html") "<a 
id=\"eek\">"
                                           , RawInline (Format "latex") 
"\\my{command}" ])
-                          ] ++ [ x | x <- nesters, n > 1]
+                          ] ++ [ x | n > 1, x <- nesters]
    where nesters = [ (10, Emph <$> arbInlines (n-1))
                    , (10, Strong <$> arbInlines (n-1))
                    , (10, Strikeout <$> arbInlines (n-1))
@@ -205,7 +205,7 @@
                                        <*> pure nullAttr
                                        <*> arbInlines (n-1))
                          , (2,  pure HorizontalRule)
-                         ] ++ [x | x <- nesters, n > 0]
+                         ] ++ [x | n > 0, x <- nesters]
    where nesters = [ (5, BlockQuote <$> listOf1 (arbBlock (n-1)))
                    , (5, OrderedList <$> ((,,) <$> (arbitrary `suchThat` (> 0))
                                                 <*> arbitrary
@@ -269,7 +269,7 @@
                return $ setMeta "title" x1
                       $ setMeta "author" x2
                       $ setMeta "date" x3
-                      $ nullMeta
+                        nullMeta
 
 instance Arbitrary Alignment where
         arbitrary
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/Text/Pandoc/Builder.hs 
new/pandoc-types-1.17.6/Text/Pandoc/Builder.hs
--- old/pandoc-types-1.17.5.4/Text/Pandoc/Builder.hs    2018-10-23 
19:04:13.000000000 +0200
+++ new/pandoc-types-1.17.6/Text/Pandoc/Builder.hs      2019-08-23 
20:00:14.000000000 +0200
@@ -1,8 +1,8 @@
-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses,
-    DeriveDataTypeable, GeneralizedNewtypeDeriving, CPP, StandaloneDeriving,
-    DeriveGeneric, DeriveTraversable #-}
+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, DeriveDataTypeable,
+    GeneralizedNewtypeDeriving, CPP, StandaloneDeriving, DeriveGeneric,
+    DeriveTraversable #-}
 {-
-Copyright (C) 2010-2016 John MacFarlane
+Copyright (C) 2010-2019 John MacFarlane
 
 All rights reserved.
 
@@ -36,7 +36,7 @@
 
 {- |
    Module      : Text.Pandoc.Builder
-   Copyright   : Copyright (C) 2010-2016 John MacFarlane
+   Copyright   : Copyright (C) 2010-2019 John MacFarlane
    License     : BSD3
 
    Maintainer  : John MacFarlane <j...@berkeley.edu>
@@ -176,18 +176,7 @@
 import Data.Data
 import Control.Arrow ((***))
 import GHC.Generics (Generic)
-import Data.Semigroup
-
-#if MIN_VERSION_base(4,5,0)
--- (<>) is defined in Data.Monoid
-#else
-infixr 6 <>
-
--- | An infix synonym for 'mappend'.
-(<>) :: Monoid m => m -> m -> m
-(<>) = mappend
-{-# INLINE (<>) #-}
-#endif
+import Data.Semigroup (Semigroup(..))
 
 newtype Many a = Many { unMany :: Seq a }
                  deriving (Data, Ord, Eq, Typeable, Foldable, Traversable, 
Functor, Show, Read)
@@ -316,8 +305,7 @@
 text :: String -> Inlines
 text = fromList . map conv . breakBySpaces
   where breakBySpaces = groupBy sameCategory
-        sameCategory x y = (is_space x && is_space y) ||
-                           (not $ is_space x || is_space y)
+        sameCategory x y = is_space x == is_space y
         conv xs | all is_space xs =
            if any is_newline xs
               then SoftBreak
@@ -498,7 +486,7 @@
 simpleTable headers rows =
   table mempty (replicate numcols defaults) headers rows
   where defaults = (AlignDefault, 0)
-        numcols  = case (headers:rows) of
+        numcols  = case headers:rows of
                         [] -> 0
                         xs -> maximum (map length xs)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/Text/Pandoc/Definition.hs 
new/pandoc-types-1.17.6/Text/Pandoc/Definition.hs
--- old/pandoc-types-1.17.5.4/Text/Pandoc/Definition.hs 2018-10-23 
19:04:12.000000000 +0200
+++ new/pandoc-types-1.17.6/Text/Pandoc/Definition.hs   2019-08-23 
20:00:14.000000000 +0200
@@ -1,8 +1,8 @@
 {-# LANGUAGE OverloadedStrings, DeriveDataTypeable, DeriveGeneric,
-FlexibleContexts, GeneralizedNewtypeDeriving, PatternGuards, CPP #-}
+    FlexibleContexts, GeneralizedNewtypeDeriving, PatternGuards, CPP #-}
 
 {-
-Copyright (c) 2006-2016, John MacFarlane
+Copyright (c) 2006-2019, John MacFarlane
 
 All rights reserved.
 
@@ -36,7 +36,7 @@
 
 {- |
    Module      : Text.Pandoc.Definition
-   Copyright   : Copyright (C) 2006-2016 John MacFarlane
+   Copyright   : Copyright (C) 2006-2019 John MacFarlane
    License     : BSD3
 
    Maintainer  : John MacFarlane <j...@berkeley.edu>
@@ -81,17 +81,10 @@
 import GHC.Generics (Generic)
 import Data.String
 import Data.Char (toLower)
-#if MIN_VERSION_base(4,8,0)
 import Control.DeepSeq
-#else
-import Data.Monoid (Monoid (mappend, mempty))
-import Control.Applicative ((<$>), (<*>))
-import Control.DeepSeq (NFData(..))
-import Control.DeepSeq.Generics
-#endif
 import Paths_pandoc_types (version)
 import Data.Version (Version, versionBranch)
-import Data.Semigroup
+import Data.Semigroup (Semigroup(..))
 
 data Pandoc = Pandoc Meta [Block]
               deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)
@@ -112,7 +105,7 @@
   -- note: M.union is left-biased, so if there are fields in both m1
   -- and m2, m1 wins.
 instance Monoid Meta where
-  mempty = Meta (M.empty)
+  mempty = Meta M.empty
   mappend = (<>)
 
 data MetaValue = MetaMap (M.Map String MetaValue)
@@ -174,7 +167,8 @@
                | AlignCenter
                | AlignDefault deriving (Eq, Ord, Show, Read, Typeable, Data, 
Generic)
 
--- | List attributes.
+-- | List attributes.  The first element of the triple is the
+-- start number of the list.
 type ListAttributes = (Int, ListNumberStyle, ListNumberDelim)
 
 -- | Style of list numbers.
@@ -292,10 +286,10 @@
 -- ToJSON/FromJSON instances. We do this by hand instead of deriving
 -- from generics, so we can have more control over the format.
 
-taggedNoContent :: [Char] -> Value
+taggedNoContent :: String -> Value
 taggedNoContent x = object [ "t" .= x ]
 
-tagged :: ToJSON a => [Char] -> a -> Value
+tagged :: ToJSON a => String -> a -> Value
 tagged x y = object [ "t" .= x, "c" .= y ]
 
 instance FromJSON MetaValue where
@@ -529,12 +523,12 @@
       "DefinitionList" -> DefinitionList <$> v .: "c"
       "Header"         -> do (n, attr, ils) <- v .: "c"
                              return $ Header n attr ils
-      "HorizontalRule" -> return $ HorizontalRule
+      "HorizontalRule" -> return HorizontalRule
       "Table"          -> do (cpt, align, wdths, hdr, rows) <- v .: "c"
                              return $ Table cpt align wdths hdr rows
       "Div"            -> do (attr, blks) <- v .: "c"
                              return $ Div attr blks
-      "Null"           -> return $ Null
+      "Null"           -> return Null
       _                -> mempty
   parseJSON _ = mempty
 instance ToJSON Block where
@@ -580,7 +574,6 @@
            ]
 
 -- Instances for deepseq
-#if MIN_VERSION_base(4,8,0)
 instance NFData MetaValue
 instance NFData Meta
 instance NFData Citation
@@ -594,21 +587,6 @@
 instance NFData ListNumberStyle
 instance NFData Block
 instance NFData Pandoc
-#else
-instance NFData MetaValue where rnf = genericRnf
-instance NFData Meta where rnf = genericRnf
-instance NFData Citation where rnf = genericRnf
-instance NFData Alignment where rnf = genericRnf
-instance NFData Inline where rnf = genericRnf
-instance NFData MathType where rnf = genericRnf
-instance NFData Format where rnf = genericRnf
-instance NFData CitationMode where rnf = genericRnf
-instance NFData QuoteType where rnf = genericRnf
-instance NFData ListNumberDelim where rnf = genericRnf
-instance NFData ListNumberStyle where rnf = genericRnf
-instance NFData Block where rnf = genericRnf
-instance NFData Pandoc where rnf = genericRnf
-#endif
 
 pandocTypesVersion :: Version
 pandocTypesVersion = version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/Text/Pandoc/Generic.hs 
new/pandoc-types-1.17.6/Text/Pandoc/Generic.hs
--- old/pandoc-types-1.17.5.4/Text/Pandoc/Generic.hs    2018-10-23 
19:04:13.000000000 +0200
+++ new/pandoc-types-1.17.6/Text/Pandoc/Generic.hs      2019-08-23 
20:00:14.000000000 +0200
@@ -1,6 +1,6 @@
 {-# LANGUAGE CPP #-}
 {-
-Copyright (c) 2006-2016, John MacFarlane
+Copyright (c) 2006-2019, John MacFarlane
 
 All rights reserved.
 
@@ -34,7 +34,7 @@
 
 {- |
    Module      : Text.Pandoc.Generic
-   Copyright   : Copyright (C) 2006-2010 John MacFarlane
+   Copyright   : Copyright (C) 2006-2019 John MacFarlane
    License     : BSD3
 
    Maintainer  : John MacFarlane <j...@berkeley.edu>
@@ -120,10 +120,6 @@
 module Text.Pandoc.Generic where
 
 import Data.Generics
-#if MIN_VERSION_base(4,8,0)
-#else
-import Data.Monoid
-#endif
 
 -- | Applies a transformation on @a@s to matching elements in a @b@,
 -- moving from the bottom of the structure up.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/Text/Pandoc/JSON.hs 
new/pandoc-types-1.17.6/Text/Pandoc/JSON.hs
--- old/pandoc-types-1.17.5.4/Text/Pandoc/JSON.hs       2018-10-23 
19:04:13.000000000 +0200
+++ new/pandoc-types-1.17.6/Text/Pandoc/JSON.hs 2019-08-23 20:00:14.000000000 
+0200
@@ -1,6 +1,6 @@
 {-# LANGUAGE FlexibleInstances, FlexibleContexts #-}
 {-
-Copyright (c) 2013-2016, John MacFarlane
+Copyright (c) 2013-2019, John MacFarlane
 
 All rights reserved.
 
@@ -34,7 +34,7 @@
 
 {- |
    Module      : Text.Pandoc.JSON
-   Copyright   : Copyright (C) 2013-2016 John MacFarlane
+   Copyright   : Copyright (C) 2013-2019 John MacFarlane
    License     : BSD3
 
    Maintainer  : John MacFarlane <j...@berkeley.edu>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/Text/Pandoc/Walk.hs 
new/pandoc-types-1.17.6/Text/Pandoc/Walk.hs
--- old/pandoc-types-1.17.5.4/Text/Pandoc/Walk.hs       2018-10-23 
19:04:13.000000000 +0200
+++ new/pandoc-types-1.17.6/Text/Pandoc/Walk.hs 2019-08-23 20:00:14.000000000 
+0200
@@ -6,14 +6,9 @@
 #if MIN_VERSION_base(4,9,0)
 {-# OPTIONS_GHC -fno-warn-redundant-constraints -O2 #-}
 #endif
-#if MIN_VERSION_base(4,8,0)
 #define OVERLAPS {-# OVERLAPPING #-}
-#else
-{-# LANGUAGE OverlappingInstances #-}
-#define OVERLAPS
-#endif
 {-
-Copyright (c) 2013-2017, John MacFarlane
+Copyright (c) 2013-2019, John MacFarlane
 
 All rights reserved.
 
@@ -47,7 +42,7 @@
 
 {- |
    Module      : Text.Pandoc.Walk
-   Copyright   : Copyright (C) 2013 John MacFarlane
+   Copyright   : Copyright (C) 2013-2019 John MacFarlane
    License     : BSD3
 
    Maintainer  : John MacFarlane <j...@berkeley.edu>
@@ -91,7 +86,19 @@
 -}
 
 
-module Text.Pandoc.Walk (Walkable(..))
+module Text.Pandoc.Walk
+  ( Walkable(..)
+  , queryBlock
+  , queryCitation
+  , queryInline
+  , queryMetaValue
+  , queryPandoc
+  , walkBlockM
+  , walkCitationM
+  , walkInlineM
+  , walkMetaValueM
+  , walkPandocM
+  )
 where
 import Control.Applicative (Applicative ((<*>), pure), (<$>))
 import Control.Monad ((>=>))
@@ -101,11 +108,7 @@
 import Data.Traversable (Traversable)
 import qualified Data.Foldable as F
 import Data.Foldable (Foldable)
-#if MIN_VERSION_base(4,8,0)
 import Data.Monoid ((<>))
-#else
-import Data.Monoid
-#endif
 
 class Walkable a b where
   -- | @walk f x@ walks the structure @x@ (bottom up) and replaces every
@@ -124,6 +127,7 @@
   walkM f = T.mapM (walkM f)
   query f = F.foldMap (query f)
 
+-- Walk pairs by handling both elements, then combine the results.
 instance OVERLAPS
         (Walkable a b, Walkable a c) => Walkable a (b,c) where
   walk f (x,y)  = (walk f x, walk f y)
@@ -142,24 +146,24 @@
   query f inlns = f inlns <> mconcat (map (queryInline f) inlns)
 
 instance Walkable [Inline] Inline where
-  walkM f = walkInlineM f
-  query f = queryInline f
+  walkM = walkInlineM
+  query = queryInline
 
 instance Walkable Inline Block where
-  walkM f = walkBlockM f
-  query f = queryBlock f
+  walkM = walkBlockM
+  query = queryBlock
 
 instance Walkable [Inline] Block where
-  walkM f = walkBlockM f
-  query f = queryBlock f
+  walkM = walkBlockM
+  query = queryBlock
 
 instance Walkable Block Block where
   walkM f x = walkBlockM f x >>= f
   query f x = f x <> queryBlock f x
 
 instance Walkable [Block] Block where
-  walkM f = walkBlockM f
-  query f = queryBlock f
+  walkM = walkBlockM
+  query = queryBlock
 
 instance OVERLAPS
          Walkable [Block] [Block] where
@@ -167,13 +171,16 @@
   query f blks = f blks <> mconcat (map (queryBlock f) blks)
 
 instance Walkable Block Inline where
-  walkM f = walkInlineM f
-  query f = queryInline f
+  walkM = walkInlineM
+  query = queryInline
 
 instance Walkable [Block] Inline where
-  walkM f = walkInlineM f
-  query f = queryInline f
+  walkM = walkInlineM
+  query = queryInline
 
+--
+-- Walk Pandoc
+--
 instance Walkable Block Pandoc where
   walkM = walkPandocM
   query = queryPandoc
@@ -194,6 +201,9 @@
   walkM f = f
   query f = f
 
+--
+-- Walk Meta
+--
 instance Walkable Meta Meta where
   walkM f = f
   query f = f
@@ -214,6 +224,9 @@
   walkM f (Meta metamap) = Meta <$> walkM f metamap
   query f (Meta metamap) = query f metamap
 
+--
+-- Walk MetaValue
+--
 instance Walkable Inline MetaValue where
   walkM = walkMetaValueM
   query = queryMetaValue
@@ -230,6 +243,9 @@
   walkM = walkMetaValueM
   query = queryMetaValue
 
+--
+-- Walk Citation
+--
 instance Walkable Inline Citation where
   walkM = walkCitationM
   query = queryCitation
@@ -246,6 +262,11 @@
   walkM = walkCitationM
   query = queryCitation
 
+-- | Helper method to walk to elements nested below @'Inline'@ nodes.
+--
+-- When walking an inline with this function, only the contents of the 
traversed
+-- inline element may change. The element itself, i.e. its constructor, cannot
+-- be changed.
 walkInlineM :: (Walkable a Citation, Walkable a [Block],
                 Walkable a [Inline], Monad m, Applicative m, Functor m)
             => (a -> m a) -> Inline -> m Inline
@@ -269,37 +290,8 @@
 walkInlineM _ x@Math {}        = return x
 walkInlineM _ x@RawInline {}   = return x
 
-walkBlockM :: (Walkable a [Block], Walkable a [Inline], Monad m,
-                Applicative m, Functor m)
-           => (a -> m a) -> Block -> m Block
-walkBlockM f (Para xs)                = Para <$> walkM f xs
-walkBlockM f (Plain xs)               = Plain <$> walkM f xs
-walkBlockM f (LineBlock xs)           = LineBlock <$> walkM f xs
-walkBlockM f (BlockQuote xs)          = BlockQuote <$> walkM f xs
-walkBlockM f (OrderedList a cs)       = OrderedList a <$> walkM f cs
-walkBlockM f (BulletList cs)          = BulletList <$> walkM f cs
-walkBlockM f (DefinitionList xs)      = DefinitionList <$> walkM f xs
-walkBlockM f (Header lev attr xs)     = Header lev attr <$> walkM f xs
-walkBlockM f (Div attr bs')           = Div attr <$> walkM f bs'
-walkBlockM _ x@CodeBlock {}           = return x
-walkBlockM _ x@RawBlock {}            = return x
-walkBlockM _ HorizontalRule           = return HorizontalRule
-walkBlockM _ Null                     = return Null
-walkBlockM f (Table capt as ws hs rs) = do capt' <- walkM f capt
-                                           hs' <- walkM f hs
-                                           rs' <- walkM f rs
-                                           return $ Table capt' as ws hs' rs'
-
-walkMetaValueM :: (Walkable a MetaValue, Walkable a [Block],
-                  Walkable a [Inline], Monad f, Applicative f, Functor f)
-               => (a -> f a) -> MetaValue -> f MetaValue
-walkMetaValueM f (MetaList xs)    = MetaList <$> walkM f xs
-walkMetaValueM _ (MetaBool b)     = return $ MetaBool b
-walkMetaValueM _ (MetaString s)   = return $ MetaString s
-walkMetaValueM f (MetaInlines xs) = MetaInlines <$> walkM f xs
-walkMetaValueM f (MetaBlocks bs)  = MetaBlocks <$> walkM f bs
-walkMetaValueM f (MetaMap m)      = MetaMap <$> walkM f m
-
+-- | Perform a query on elements nested below an @'Inline'@ element by
+-- querying nested lists of @Inline@s, @Block@s, or @Citation@s.
 queryInline :: (Walkable a Citation, Walkable a [Block],
                 Walkable a [Inline], Monoid c)
             => (a -> c) -> Inline -> c
@@ -323,6 +315,35 @@
 queryInline f (Note bs)       = query f bs
 queryInline f (Span _ xs)     = query f xs
 
+
+-- | Helper method to walk to elements nested below @'Block'@ nodes.
+--
+-- When walking a block with this function, only the contents of the traversed
+-- block element may change. The element itself, i.e. its constructor, its 
@'Attr'@,
+-- and its raw text value, will remain unchanged.
+walkBlockM :: (Walkable a [Block], Walkable a [Inline], Monad m,
+                Applicative m, Functor m)
+           => (a -> m a) -> Block -> m Block
+walkBlockM f (Para xs)                = Para <$> walkM f xs
+walkBlockM f (Plain xs)               = Plain <$> walkM f xs
+walkBlockM f (LineBlock xs)           = LineBlock <$> walkM f xs
+walkBlockM f (BlockQuote xs)          = BlockQuote <$> walkM f xs
+walkBlockM f (OrderedList a cs)       = OrderedList a <$> walkM f cs
+walkBlockM f (BulletList cs)          = BulletList <$> walkM f cs
+walkBlockM f (DefinitionList xs)      = DefinitionList <$> walkM f xs
+walkBlockM f (Header lev attr xs)     = Header lev attr <$> walkM f xs
+walkBlockM f (Div attr bs')           = Div attr <$> walkM f bs'
+walkBlockM _ x@CodeBlock {}           = return x
+walkBlockM _ x@RawBlock {}            = return x
+walkBlockM _ HorizontalRule           = return HorizontalRule
+walkBlockM _ Null                     = return Null
+walkBlockM f (Table capt as ws hs rs) = do capt' <- walkM f capt
+                                           hs' <- walkM f hs
+                                           rs' <- walkM f rs
+                                           return $ Table capt' as ws hs' rs'
+
+-- | Perform a query on elements nested below a @'Block'@ element by
+-- querying all directly nested lists of @Inline@s or @Block@s.
 queryBlock :: (Walkable a Citation, Walkable a [Block],
                 Walkable a [Inline], Monoid c)
            => (a -> c) -> Block -> c
@@ -341,6 +362,24 @@
 queryBlock f (Div _ bs)               = query f bs
 queryBlock _ Null                     = mempty
 
+-- | Helper method to walk to elements nested below @'MetaValue'@ nodes.
+--
+-- When walking a meta value with this function, only the contents of the
+-- traversed meta value element may change. @MetaBool@ and @MetaString@ will
+-- always remain unchanged.
+walkMetaValueM :: (Walkable a MetaValue, Walkable a [Block],
+                  Walkable a [Inline], Monad f, Applicative f, Functor f)
+               => (a -> f a) -> MetaValue -> f MetaValue
+walkMetaValueM f (MetaList xs)    = MetaList <$> walkM f xs
+walkMetaValueM _ (MetaBool b)     = return $ MetaBool b
+walkMetaValueM _ (MetaString s)   = return $ MetaString s
+walkMetaValueM f (MetaInlines xs) = MetaInlines <$> walkM f xs
+walkMetaValueM f (MetaBlocks bs)  = MetaBlocks <$> walkM f bs
+walkMetaValueM f (MetaMap m)      = MetaMap <$> walkM f m
+
+-- | Perform a query on elements nested below a @'MetaValue'@ element by
+-- querying all directly nested lists of @Inline@s, list of @Block@s, or
+-- lists or maps of @MetaValue@s.
 queryMetaValue :: (Walkable a MetaValue, Walkable a [Block],
                    Walkable a [Inline], Monoid c)
                => (a -> c) -> MetaValue -> c
@@ -351,6 +390,11 @@
 queryMetaValue f (MetaBlocks bs)  = query f bs
 queryMetaValue f (MetaMap m)      = query f m
 
+-- | Helper method to walk to elements nested below @'Citation'@ nodes.
+--
+-- The non-inline contents of a citation will remain unchanged during 
traversal.
+-- Only the inline contents, viz. the citation's prefix and postfix, will be
+-- traversed further and can thus be changed during this operation.
 walkCitationM :: (Walkable a [Inline], Monad m, Applicative m, Functor m)
               => (a -> m a) -> Citation -> m Citation
 walkCitationM f (Citation id' pref suff mode notenum hash) =
@@ -358,10 +402,13 @@
        suff' <- walkM f suff
        return $ Citation id' pref' suff' mode notenum hash
 
+-- | Perform a query on elements nested below a @'Citation'@ element by
+-- querying the prefix and postfix @Inline@ lists.
 queryCitation :: (Walkable a [Inline], Monoid c)
               => (a -> c) -> Citation -> c
 queryCitation f (Citation _ pref suff _ _ _) = query f pref <> query f suff
 
+-- | Helper method to walk the components of a Pandoc element.
 walkPandocM :: (Walkable a Meta, Walkable a [Block], Monad m,
                   Applicative m, Functor m)
             => (a -> m a) -> Pandoc -> m Pandoc
@@ -369,6 +416,8 @@
                                  bs' <- walkM f bs
                                  return $ Pandoc m' bs'
 
+-- | Query a pandoc element by recursing first into its @'Meta'@ data
+-- and then append the result of recursing into the list of @'Block'@s.
 queryPandoc :: (Walkable a Meta, Walkable a [Block], Monoid c)
              => (a -> c) -> Pandoc -> c
 queryPandoc f (Pandoc m bs) = query f m <> query f bs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/benchmark/bench.hs 
new/pandoc-types-1.17.6/benchmark/bench.hs
--- old/pandoc-types-1.17.5.4/benchmark/bench.hs        2018-10-23 
19:04:13.000000000 +0200
+++ new/pandoc-types-1.17.6/benchmark/bench.hs  2019-08-23 20:00:14.000000000 
+0200
@@ -6,7 +6,7 @@
 import Text.Pandoc.Builder
 
 main :: IO ()
-main = do
+main =
   defaultMain [
       bench "simple walk" $ nf (walk prependZeroWidthSpace) mydoc
     , bench "walk concatMap" $ nf (walk $ concatMap prependZeroWidthSpace') 
mydoc
@@ -23,7 +23,7 @@
 
 prependZeroWidthSpace'' :: [Inline] -> [Inline]
 prependZeroWidthSpace'' (Str s : xs) =
-  (Str ('\8203' : s) : prependZeroWidthSpace'' xs)
+  Str ('\8203' : s) : prependZeroWidthSpace'' xs
 prependZeroWidthSpace'' (x : xs) =
   x : prependZeroWidthSpace'' xs
 prependZeroWidthSpace'' [] = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/changelog 
new/pandoc-types-1.17.6/changelog
--- old/pandoc-types-1.17.5.4/changelog 2018-10-23 19:04:13.000000000 +0200
+++ new/pandoc-types-1.17.6/changelog   2019-08-23 20:04:52.000000000 +0200
@@ -1,3 +1,15 @@
+[1.17.6]
+
+  * Walk: export walk and query helpers (Albert Krewinkel) [API change].
+    The `walk*M` and `query*` functions are helpful when defining new
+    `Walkable` instances.
+  * Allow QuickCheck 2.13.
+  * Document meaning of Int in ListAttributes (#45).
+  * Update copyright year spans to include 2019 (Albert Krewinkel).
+  * Remove CPP instructions for GHC versions < 7.10 (Albert Krewinkel).
+  *  update list of GHC versions used for testing (Albert Krewinkel).
+  * Fix compiler and hlint warnings (Pete Ryland).
+
 [1.17.5.4]
 
   * Put NFData in scope for ghc < 7.10.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/pandoc-types.cabal 
new/pandoc-types-1.17.6/pandoc-types.cabal
--- old/pandoc-types-1.17.5.4/pandoc-types.cabal        2018-10-23 
19:04:13.000000000 +0200
+++ new/pandoc-types-1.17.6/pandoc-types.cabal  2019-08-23 20:00:39.000000000 
+0200
@@ -1,5 +1,5 @@
 Name:                pandoc-types
-Version:             1.17.5.4
+Version:             1.17.6
 Synopsis:            Types for representing a structured document
 Description:         @Text.Pandoc.Definition@ defines the 'Pandoc' data
                      structure, which is used by pandoc to represent
@@ -22,17 +22,18 @@
                      @Text.Pandoc.JSON@ provides functions for serializing
                      and deserializing a @Pandoc@ structure to and from JSON.
 
-Homepage:            http://johnmacfarlane.net/pandoc
+Homepage:            https://pandoc.org/
 License:             BSD3
 License-file:        LICENSE
 Author:              John MacFarlane
 Maintainer:          j...@berkeley.edu
 Bug-Reports:         https://github.com/jgm/pandoc-types/issues
-Copyright:           (c) 2006-2017 John MacFarlane
+Copyright:           (c) 2006-2019 John MacFarlane
 Category:            Text
 Build-type:          Simple
 Cabal-version:       >=1.8
-Tested-With:         GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1
+Tested-With:         GHC == 7.10.3, GHC == 8.0.1, GHC == 8.2.2, GHC == 8.4.2,
+                     GHC == 8.6.5
 Extra-Source-Files:  changelog
 Source-repository    head
   type:              git
@@ -48,19 +49,15 @@
   Other-modules:     Paths_pandoc_types
   Build-depends:     base >= 4.5 && < 5,
                      containers >= 0.3,
+                     deepseq >= 1.4.1 && < 1.5,
                      syb >= 0.1 && < 0.8,
                      ghc-prim >= 0.2,
                      bytestring >= 0.9 && < 0.11,
                      aeson >= 0.6.2 && < 1.5,
                      transformers >= 0.2 && < 0.6,
-                     QuickCheck >= 2.4 && < 2.13
+                     QuickCheck >= 2.4 && < 2.14
   if !impl(ghc >= 8.0)
     Build-depends:   semigroups == 0.18.*
-  if impl(ghc < 7.10)
-    Build-depends:   deepseq-generics >= 0.2 && < 0.3,
-                     deepseq >= 1.3 && < 1.5
-  else
-    Build-depends:   deepseq >= 1.4.1 && < 1.5
   ghc-options:       -Wall
 
 test-suite test-pandoc-types
@@ -76,7 +73,7 @@
                        test-framework >= 0.3 && < 0.9,
                        test-framework-hunit >= 0.2 && < 0.4,
                        test-framework-quickcheck2 >= 0.2.9 && < 0.4,
-                       QuickCheck >= 2.4 && < 2.13,
+                       QuickCheck >= 2.4 && < 2.14,
                        HUnit >= 1.2 && < 1.7,
                        string-qq == 0.0.2
   ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall -O2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pandoc-types-1.17.5.4/test/test-pandoc-types.hs 
new/pandoc-types-1.17.6/test/test-pandoc-types.hs
--- old/pandoc-types-1.17.5.4/test/test-pandoc-types.hs 2018-10-23 
19:04:13.000000000 +0200
+++ new/pandoc-types-1.17.6/test/test-pandoc-types.hs   2019-08-23 
20:00:14.000000000 +0200
@@ -15,10 +15,6 @@
 import qualified Data.Map as M
 import Data.String.QQ
 import Data.ByteString.Lazy (ByteString)
-#if MIN_VERSION_base(4,8,0)
-#else
-import Data.Monoid
-#endif
 import qualified Data.Monoid as Monoid
 
 
@@ -367,7 +363,7 @@
 -- cells in order to avoid syntax errors after conversion, see
 -- jgm/pandoc#4059.
 t_tableSan :: Test
-t_tableSan = testCase "table sanitisation" $ assertion
+t_tableSan = testCase "table sanitisation" assertion
              where assertion = assertEqual err expected generated
                    err = "sanitisation error"
                    generated = simpleTable


Reply via email to