on master help sign in
Add missing instances for Data.Sequence.Seq
abf71edDaniel Gorin
Data/Aeson/Types/Instances.hs+10
@@ -64,6 +64,7 @@ import Data.Scientific (Scientific)
64import qualified Data.Scientific as Scientific (coefficient, base10Exponent, fromFloatDigits, toRealFloat)
64import qualified Data.Scientific as Scientific (coefficient, base10Exponent, fromFloatDigits, toRealFloat)
65import Data.Attoparsec.Number (Number(..))
65import Data.Attoparsec.Number (Number(..))
66import Data.Fixed
66import Data.Fixed
67+import Data.Foldable (toList)
67import Data.Hashable (Hashable(..))
68import Data.Hashable (Hashable(..))
68import Data.Int (Int8, Int16, Int32, Int64)
69import Data.Int (Int8, Int16, Int32, Int64)
69import Data.Maybe (fromMaybe)
70import Data.Maybe (fromMaybe)
@@ -87,6 +88,7 @@ import qualified Data.IntMap as IntMap
87import qualified Data.IntSet as IntSet
88import qualified Data.IntSet as IntSet
88import qualified Data.Map as M
89import qualified Data.Map as M
89import qualified Data.Set as Set
90import qualified Data.Set as Set
91+import qualified Data.Sequence as Seq
90import qualified Data.Tree as Tree
92import qualified Data.Tree as Tree
91import qualified Data.Text as T
93import qualified Data.Text as T
92import qualified Data.Text.Lazy as LT
94import qualified Data.Text.Lazy as LT
@@ -339,6 +341,14 @@ instance (FromJSON a) => FromJSON [a] where
339 parseJSON = withArray "[a]" $ mapM parseJSON . V.toList
341 parseJSON = withArray "[a]" $ mapM parseJSON . V.toList
340 {-# INLINE parseJSON #-}
342 {-# INLINE parseJSON #-}
341
343
344+instance (ToJSON a) => ToJSON (Seq.Seq a) where
345+ toJSON = toJSON . toList
346+ {-# INLINE toJSON #-}
347+
348+instance (FromJSON a) => FromJSON (Seq.Seq a) where
349+ parseJSON = withArray "Seq a" $ traverse parseJSON . Seq.fromList . V.toList
350+ {-# INLINE parseJSON #-}
351+
342instance (ToJSON a) => ToJSON (Vector a) where
352instance (ToJSON a) => ToJSON (Vector a) where
343 toJSON = Array . V.map toJSON
353 toJSON = Array . V.map toJSON
344 {-# INLINE toJSON #-}
354 {-# INLINE toJSON #-}