@@ -555,41 +555,63 @@ queryBlockF _ Null = mempty
555555walkMetaValueM :: (Walkable a MetaValue , Walkable a [Block ],
556556 Walkable a [Inline ], Monad f , Applicative f , Functor f )
557557 => (a -> f a ) -> MetaValue -> f MetaValue
558- walkMetaValueM f (MetaList xs) = MetaList <$> walkM f xs
559- walkMetaValueM _ (MetaBool b) = return $ MetaBool b
560- walkMetaValueM _ (MetaString s) = return $ MetaString s
561- walkMetaValueM f (MetaInlines xs) = MetaInlines <$> walkM f xs
562- walkMetaValueM f (MetaBlocks bs) = MetaBlocks <$> walkM f bs
563- walkMetaValueM f (MetaMap m) = MetaMap <$> walkM f m
558+ walkMetaValueM f (MetaValue b) = MetaValue <$> walkMetaValueFM f b
559+
560+ walkMetaValueFM :: (Monad f , Walkable a metaValue ,
561+ Walkable a [metaValue ], Walkable a [inline ], Walkable a [block ])
562+ => (a -> f a )
563+ -> MetaValueF inline block metaValue
564+ -> f (MetaValueF inline block metaValue )
565+ walkMetaValueFM f (MetaList xs) = MetaList <$> walkM f xs
566+ walkMetaValueFM _ (MetaBool b) = return $ MetaBool b
567+ walkMetaValueFM _ (MetaString s) = return $ MetaString s
568+ walkMetaValueFM f (MetaInlines xs) = MetaInlines <$> walkM f xs
569+ walkMetaValueFM f (MetaBlocks bs) = MetaBlocks <$> walkM f bs
570+ walkMetaValueFM f (MetaMap m) = MetaMap <$> walkM f m
564571
565572-- | Helper method to walk @'MetaValue'@ nodes nested below @'MetaValue'@ nodes.
566573walkMetaValueM' :: (Monad f , Applicative f , Functor f )
567574 => (MetaValue -> f MetaValue ) -> MetaValue -> f MetaValue
568- walkMetaValueM' f (MetaMap m) =
575+ walkMetaValueM' f (MetaValue b) = MetaValue <$> walkMetaValueFM' f b
576+
577+ walkMetaValueFM' :: (Monad f , Walkable a metaValue )
578+ => (a -> f a )
579+ -> MetaValueF inline block metaValue
580+ -> f (MetaValueF inline block metaValue )
581+ walkMetaValueFM' f (MetaMap m) =
569582 MetaMap . M. fromAscList <$> mapM (\ (k, v) -> (,) k <$> walkM f v) (M. toAscList m)
570- walkMetaValueM ' f (MetaList xs) = MetaList <$> mapM (walkM f) xs
571- walkMetaValueM ' _ x = return x
583+ walkMetaValueFM ' f (MetaList xs) = MetaList <$> mapM (walkM f) xs
584+ walkMetaValueFM ' _ x = return x
572585
573586-- | Perform a query on elements nested below a @'MetaValue'@ element by
574587-- querying all directly nested lists of @Inline@s, list of @Block@s, or
575588-- lists or maps of @MetaValue@s.
576589queryMetaValue :: (Walkable a MetaValue , Walkable a [Block ],
577590 Walkable a [Inline ], Monoid c )
578591 => (a -> c ) -> MetaValue -> c
579- queryMetaValue f (MetaList xs) = query f xs
580- queryMetaValue _ (MetaBool _) = mempty
581- queryMetaValue _ (MetaString _) = mempty
582- queryMetaValue f (MetaInlines xs) = query f xs
583- queryMetaValue f (MetaBlocks bs) = query f bs
584- queryMetaValue f (MetaMap m) = query f m
592+ queryMetaValue f (MetaValue b) = queryMetaValueF f b
593+
594+ queryMetaValueF :: (Monoid c , Walkable a metaValue ,
595+ Walkable a [metaValue ], Walkable a [inline ], Walkable a [block ])
596+ => (a -> c ) -> MetaValueF inline block metaValue -> c
597+ queryMetaValueF f (MetaList xs) = query f xs
598+ queryMetaValueF _ (MetaBool _) = mempty
599+ queryMetaValueF _ (MetaString _) = mempty
600+ queryMetaValueF f (MetaInlines xs) = query f xs
601+ queryMetaValueF f (MetaBlocks bs) = query f bs
602+ queryMetaValueF f (MetaMap m) = query f m
585603
586604-- | Perform a query on @'MetaValue'@ elements nested below a @'MetaValue'@
587605-- element
588606queryMetaValue' :: Monoid c
589607 => (MetaValue -> c ) -> MetaValue -> c
590- queryMetaValue' f (MetaMap m) = M. foldMapWithKey (const $ query f) m
591- queryMetaValue' f (MetaList xs) = mconcat $ map (query f) xs
592- queryMetaValue' _ _ = mempty
608+ queryMetaValue' f (MetaValue b) = queryMetaValueF' f b
609+
610+ queryMetaValueF' :: (Monoid c , Walkable a b )
611+ => (a -> c ) -> MetaValueF inline block b -> c
612+ queryMetaValueF' f (MetaMap m) = M. foldMapWithKey (const $ query f) m
613+ queryMetaValueF' f (MetaList xs) = mconcat $ map (query f) xs
614+ queryMetaValueF' _ _ = mempty
593615
594616-- | Helper method to walk to elements nested below @'Citation'@ nodes.
595617--
0 commit comments