on master help sign in
Add missing instances for Data.Sequence.Seq
commitabf71ed93d23ed73d26d76c37cafa576e6b9ac43 authorDaniel Gorin <jcpetruzza@gmail.com> dateThu 16 Oct 2014, 21:12 (12 years ago) parentc33ad66
1 file changed+10
Data/Aeson/Types/Instances.hs+10
Data/Aeson/Types/Instances.hs+10
@@ -64,6 +64,7 @@ import Data.Scientific (Scientific)
6464import qualified Data.Scientific as Scientific (coefficient, base10Exponent, fromFloatDigits, toRealFloat)
6565import Data.Attoparsec.Number (Number(..))
6666import Data.Fixed
67+import Data.Foldable (toList)
6768import Data.Hashable (Hashable(..))
6869import Data.Int (Int8, Int16, Int32, Int64)
6970import Data.Maybe (fromMaybe)
@@ -87,6 +88,7 @@ import qualified Data.IntMap as IntMap
8788import qualified Data.IntSet as IntSet
8889import qualified Data.Map as M
8990import qualified Data.Set as Set
91+import qualified Data.Sequence as Seq
9092import qualified Data.Tree as Tree
9193import qualified Data.Text as T
9294import qualified Data.Text.Lazy as LT
@@ -339,6 +341,14 @@ instance (FromJSON a) => FromJSON [a] where
339341 parseJSON = withArray "[a]" $ mapM parseJSON . V.toList
340342 {-# INLINE parseJSON #-}
341343
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+
342352instance (ToJSON a) => ToJSON (Vector a) where
343353 toJSON = Array . V.map toJSON
344354 {-# INLINE toJSON #-}