@@ -164,8 +164,8 @@ parseIndexedJSONPair keyParser valParser idx value = p value <?> Index idx
164164 p = withArray "(k,v)" $ \ab ->
165165 let n = V.length ab
166166 in if n == 2
167− then (,) <$> parseJSONElemAtIndex keyParser 0 ab
168− <*> parseJSONElemAtIndex valParser 1 ab
167+ then (,) <$> parseJSONElemAtIndex keyParser 0 ab
168+ <*>+ parseJSONElemAtIndex valParser 1 ab
169169 else fail $ "cannot unpack array of length " ++
170170 show n ++ " into a pair"
171171{-# INLINE parseIndexedJSONPair #-}
@@ -606,7 +606,7 @@ parseJSON2 = liftParseJSON2 parseJSON parseJSONList parseJSON parseJSONList
606606
607607-- | Helper function to use with 'liftParseJSON'. See 'Data.Aeson.ToJSON.listEncoding'.
608608listParser :: (Value -> Parser a) -> Value -> Parser [a]
609−listParser f (Array xs) = fmap V.toList (V.mapM f xs)
609+listParser f (Array xs) = fmap V.toList (accumulateTraverseVector f xs)
610610listParser _ v = typeMismatch "[a]" v
611611{-# INLINE listParser #-}
612612
@@ -1529,7 +1529,7 @@ instance (FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (Sum f g a) where
15291529instance FromJSON1 Seq.Seq where
15301530 liftParseJSON p _ = withArray "Seq a" $
15311531 fmap Seq.fromList .
1532− Tr.sequence . zipWith (parseIndexedJSON p) [0..] . V.toList
1532+ accumulateSequenceList . zipWith (parseIndexedJSON p) [0..] . V.toList
15331533 {-# INLINE liftParseJSON #-}
15341534
15351535instance (FromJSON a) => FromJSON (Seq.Seq a) where
@@ -1607,7 +1607,7 @@ instance FromJSONKey UUID.UUID where
16071607
16081608instance FromJSON1 Vector where
16091609 liftParseJSON p _ = withArray "Vector a" $
1610− V.mapM (uncurry $ parseIndexedJSON p) . V.indexed
1610+ accumulateTraverseVector (uncurry $ parseIndexedJSON p) . V.indexed
16111611 {-# INLINE liftParseJSON #-}
16121612
16131613instance (FromJSON a) => FromJSON (Vector a) where