{-# LANGUAGE CPP #-}
{-# OPTIONS_GHC -fno-warn-deprecations #-}
module Data.Aeson.Extra (
encodeStrict,
M(..),
FromJSONKey(..),
parseIntegralJSONKey,
FromJSONMap(..),
ToJSONKey(..),
ToJSONMap(..),
#if MIN_VERSION_base(4,7,0)
SymTag(..),
SingObject(..),
mkSingObject,
getSingObject,
#endif
CollapsedList(..),
getCollapsedList,
parseCollapsedList,
U(..),
Z(..),
ValueF(..),
ObjectF,
ArrayF,
merge,
lodashMerge,
streamDecode,
mkValue,
mkValue',
module Data.Aeson.Compat,
) where
import Prelude ()
import Prelude.Compat
import Data.Aeson.Compat
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as LBS
import Data.Aeson.Extra.CollapsedList
import Data.Aeson.Extra.Map
import Data.Aeson.Extra.Merge
import Data.Aeson.Extra.Recursive
import Data.Aeson.Extra.Stream
import Data.Aeson.Extra.TH
import Data.Aeson.Extra.Time
#if MIN_VERSION_base(4,7,0)
import Data.Aeson.Extra.SingObject
import Data.Aeson.Extra.SymTag
#endif
encodeStrict :: ToJSON a => a -> BS.ByteString
encodeStrict = LBS.toStrict . encode