{-# OPTIONS_GHC -Wno-orphans #-}
module Data.MonoidMap.JSON
(
)
where
import Prelude
import Data.Aeson
( FromJSON (parseJSON)
, FromJSONKey
, ToJSON (toEncoding, toJSON)
, ToJSONKey
, encode
)
import Data.Map.Strict
( Map
)
import Data.Monoid
( Sum
)
import Data.Monoid.Null
( MonoidNull
)
import Data.MonoidMap
( MonoidMap
, fromList
, fromMap
, toMap
)
_importsRequiredForDocumentation :: ()
_importsRequiredForDocumentation :: ()
_importsRequiredForDocumentation = ()
where
_encode :: ByteString
_encode = () -> ByteString
forall a. ToJSON a => a -> ByteString
encode ()
_fromList :: (Ord k, MonoidNull v) => [(k, v)] -> MonoidMap k v
_fromList :: forall k v. (Ord k, MonoidNull v) => [(k, v)] -> MonoidMap k v
_fromList = [(k, v)] -> MonoidMap k v
forall k v. (Ord k, MonoidNull v) => [(k, v)] -> MonoidMap k v
fromList
_fromMap :: (Ord k, MonoidNull v) => Map k v -> MonoidMap k v
_fromMap :: forall k v. (Ord k, MonoidNull v) => Map k v -> MonoidMap k v
_fromMap = Map k v -> MonoidMap k v
forall v k. MonoidNull v => Map k v -> MonoidMap k v
fromMap
_toMap :: (Ord k, MonoidNull v) => MonoidMap k v -> Map k v
_toMap :: forall k v. (Ord k, MonoidNull v) => MonoidMap k v -> Map k v
_toMap = MonoidMap k v -> Map k v
forall k v. MonoidMap k v -> Map k v
toMap
_Sum :: Sum ()
_Sum :: Sum ()
_Sum = Sum ()
forall a. HasCallStack => a
undefined
instance
( ToJSONKey k
, ToJSON v
)
=> ToJSON (MonoidMap k v)
where
toEncoding :: MonoidMap k v -> Encoding
toEncoding = Map k v -> Encoding
forall a. ToJSON a => a -> Encoding
toEncoding (Map k v -> Encoding)
-> (MonoidMap k v -> Map k v) -> MonoidMap k v -> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MonoidMap k v -> Map k v
forall k v. MonoidMap k v -> Map k v
toMap
toJSON :: MonoidMap k v -> Value
toJSON = Map k v -> Value
forall a. ToJSON a => a -> Value
toJSON (Map k v -> Value)
-> (MonoidMap k v -> Map k v) -> MonoidMap k v -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MonoidMap k v -> Map k v
forall k v. MonoidMap k v -> Map k v
toMap
instance
( FromJSONKey k
, Ord k
, FromJSON v
, MonoidNull v
)
=> FromJSON (MonoidMap k v)
where
parseJSON :: Value -> Parser (MonoidMap k v)
parseJSON = (Parser (Map k v) -> Parser (MonoidMap k v))
-> (Value -> Parser (Map k v)) -> Value -> Parser (MonoidMap k v)
forall a b. (a -> b) -> (Value -> a) -> Value -> b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((Map k v -> MonoidMap k v)
-> Parser (Map k v) -> Parser (MonoidMap k v)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Map k v -> MonoidMap k v
forall v k. MonoidNull v => Map k v -> MonoidMap k v
fromMap) Value -> Parser (Map k v)
forall a. FromJSON a => Value -> Parser a
parseJSON