{-# LANGUAGE CPP #-} module HaskellWorks.Data.Aeson.Compat.Map.V2 ( #if MIN_VERSION_aeson(2,0,0) KeyMap , Key , foldlWithKey , foldlWithKey' , null , lookup , size , member , empty , singleton , insert , delete , alterF , difference , union , unionWith , unionWithKey , intersection , intersectionWith , intersectionWithKey , fromList , fromListWith , toList , toAscList , elems , fromHashMap , toHashMap , fromHashMapText , toHashMapText , fromMap , toMap , fromMapText , toMapText , map , mapWithKey , traverseWithKey , foldr , foldr' , foldl , foldl' , foldMapWithKey , foldrWithKey , keys , filter , filterWithKey , mapMaybe , mapMaybeWithKey #endif ) where #if MIN_VERSION_aeson(2,0,0) import qualified Data.Aeson.Key as K import qualified Data.Aeson.KeyMap as KM import qualified Data.Map as M import qualified HaskellWorks.Data.Aeson.Compat as J import Data.HashMap.Strict (HashMap) import Data.Map (Map) import Data.Text (Text) import Prelude hiding (filter, foldl, foldr, lookup, map, null) type KeyMap v = KM.KeyMap v type Key = J.Key foldlWithKey :: (a -> Key -> b -> a) -> a -> KeyMap b -> a foldlWithKey :: forall a b. (a -> Key -> b -> a) -> a -> KeyMap b -> a foldlWithKey a -> Key -> b -> a f a a = forall a k b. (a -> k -> b -> a) -> a -> Map k b -> a M.foldlWithKey a -> Key -> b -> a f a a forall b c a. (b -> c) -> (a -> b) -> a -> c . forall v. KeyMap v -> Map Key v KM.toMap foldlWithKey' :: (a -> Key -> b -> a) -> a -> KeyMap b -> a foldlWithKey' :: forall a b. (a -> Key -> b -> a) -> a -> KeyMap b -> a foldlWithKey' a -> Key -> b -> a f a a = forall a k b. (a -> k -> b -> a) -> a -> Map k b -> a M.foldlWithKey' a -> Key -> b -> a f a a forall b c a. (b -> c) -> (a -> b) -> a -> c . forall v. KeyMap v -> Map Key v KM.toMap null :: KeyMap v -> Bool null :: forall v. KeyMap v -> Bool null = forall v. KeyMap v -> Bool KM.null lookup :: Key -> KeyMap v -> Maybe v lookup :: forall v. Key -> KeyMap v -> Maybe v lookup = forall v. Key -> KeyMap v -> Maybe v KM.lookup size :: KeyMap v -> Int size :: forall v. KeyMap v -> Int size = forall v. KeyMap v -> Int KM.size member :: Key -> KeyMap v -> Bool member :: forall v. Key -> KeyMap v -> Bool member = forall v. Key -> KeyMap v -> Bool KM.member empty :: KeyMap v empty :: forall v. KeyMap v empty = forall v. KeyMap v KM.empty singleton :: Key -> v -> KeyMap v singleton :: forall v. Key -> v -> KeyMap v singleton = forall v. Key -> v -> KeyMap v KM.singleton insert :: Key -> v -> KeyMap v -> KeyMap v insert :: forall v. Key -> v -> KeyMap v -> KeyMap v insert = forall v. Key -> v -> KeyMap v -> KeyMap v KM.insert delete :: Key -> KeyMap v -> KeyMap v delete :: forall v. Key -> KeyMap v -> KeyMap v delete = forall v. Key -> KeyMap v -> KeyMap v KM.delete alterF :: Functor f => (Maybe v -> f (Maybe v)) -> Key -> KeyMap v -> f (KeyMap v) alterF :: forall (f :: * -> *) v. Functor f => (Maybe v -> f (Maybe v)) -> Key -> KeyMap v -> f (KeyMap v) alterF = forall (f :: * -> *) v. Functor f => (Maybe v -> f (Maybe v)) -> Key -> KeyMap v -> f (KeyMap v) KM.alterF difference :: KeyMap v -> KeyMap v' -> KeyMap v difference :: forall v v'. KeyMap v -> KeyMap v' -> KeyMap v difference = forall v v'. KeyMap v -> KeyMap v' -> KeyMap v KM.difference union :: KeyMap v -> KeyMap v -> KeyMap v union :: forall v. KeyMap v -> KeyMap v -> KeyMap v union = forall v. KeyMap v -> KeyMap v -> KeyMap v KM.union unionWith :: (v -> v -> v) -> KeyMap v -> KeyMap v -> KeyMap v unionWith :: forall v. (v -> v -> v) -> KeyMap v -> KeyMap v -> KeyMap v unionWith = forall v. (v -> v -> v) -> KeyMap v -> KeyMap v -> KeyMap v KM.unionWith unionWithKey :: (Key -> v -> v -> v) -> KeyMap v -> KeyMap v -> KeyMap v unionWithKey :: forall v. (Key -> v -> v -> v) -> KeyMap v -> KeyMap v -> KeyMap v unionWithKey = forall v. (Key -> v -> v -> v) -> KeyMap v -> KeyMap v -> KeyMap v KM.unionWithKey intersection :: KeyMap a -> KeyMap b -> KeyMap a intersection :: forall v v'. KeyMap v -> KeyMap v' -> KeyMap v intersection = forall v v'. KeyMap v -> KeyMap v' -> KeyMap v KM.intersection intersectionWith :: (a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c intersectionWith :: forall a b c. (a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c intersectionWith = forall a b c. (a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c KM.intersectionWith intersectionWithKey :: (Key -> a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c intersectionWithKey :: forall a b c. (Key -> a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c intersectionWithKey = forall a b c. (Key -> a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c KM.intersectionWithKey fromList :: [(Key, v)] -> KeyMap v fromList :: forall v. [(Key, v)] -> KeyMap v fromList = forall v. [(Key, v)] -> KeyMap v KM.fromList fromListWith :: (v -> v -> v) -> [(Key, v)] -> KeyMap v fromListWith :: forall v. (v -> v -> v) -> [(Key, v)] -> KeyMap v fromListWith = forall v. (v -> v -> v) -> [(Key, v)] -> KeyMap v KM.fromListWith toList :: KeyMap v -> [(Key, v)] toList :: forall v. KeyMap v -> [(Key, v)] toList = forall v. KeyMap v -> [(Key, v)] KM.toList toAscList :: KeyMap v -> [(Key, v)] toAscList :: forall v. KeyMap v -> [(Key, v)] toAscList = forall k a. Map k a -> [(k, a)] M.toList forall b c a. (b -> c) -> (a -> b) -> a -> c . forall v. KeyMap v -> Map Key v toMap elems :: KeyMap v -> [v] #if MIN_VERSION_aeson(2,0,3) elems :: forall v. KeyMap v -> [v] elems = forall v. KeyMap v -> [v] KM.elems #else elems = M.elems . KM.toMap #endif fromHashMap :: HashMap Key v -> KeyMap v fromHashMap :: forall v. HashMap Key v -> KeyMap v fromHashMap = forall v. HashMap Key v -> KeyMap v KM.fromHashMap toHashMap :: KeyMap v -> HashMap Key v toHashMap :: forall v. KeyMap v -> HashMap Key v toHashMap = forall v. KeyMap v -> HashMap Key v KM.toHashMap fromHashMapText :: HashMap Text v -> KeyMap v fromHashMapText :: forall v. HashMap Text v -> KeyMap v fromHashMapText = forall v. HashMap Text v -> KeyMap v KM.fromHashMapText toHashMapText :: KeyMap v -> HashMap Text v toHashMapText :: forall v. KeyMap v -> HashMap Text v toHashMapText = forall v. KeyMap v -> HashMap Text v KM.toHashMapText fromMap :: Map Key v -> KeyMap v fromMap :: forall v. Map Key v -> KeyMap v fromMap = forall v. [(Key, v)] -> KeyMap v KM.fromList forall b c a. (b -> c) -> (a -> b) -> a -> c . forall k a. Map k a -> [(k, a)] M.toList toMap :: KeyMap v -> Map Key v toMap :: forall v. KeyMap v -> Map Key v toMap = forall k a. Ord k => [(k, a)] -> Map k a M.fromList forall b c a. (b -> c) -> (a -> b) -> a -> c . forall v. KeyMap v -> [(Key, v)] KM.toList fromMapText :: Map Text v -> KeyMap v fromMapText :: forall v. Map Text v -> KeyMap v fromMapText = forall v. Map Key v -> KeyMap v KM.fromMap forall b c a. (b -> c) -> (a -> b) -> a -> c . forall k2 k1 a. Ord k2 => (k1 -> k2) -> Map k1 a -> Map k2 a M.mapKeys Text -> Key K.fromText toMapText :: KeyMap v -> Map Text v toMapText :: forall v. KeyMap v -> Map Text v toMapText = forall k2 k1 a. Ord k2 => (k1 -> k2) -> Map k1 a -> Map k2 a M.mapKeys Key -> Text K.toText forall b c a. (b -> c) -> (a -> b) -> a -> c . forall v. KeyMap v -> Map Key v KM.toMap map :: (a -> b) -> KeyMap a -> KeyMap b map :: forall a b. (a -> b) -> KeyMap a -> KeyMap b map = forall a b. (a -> b) -> KeyMap a -> KeyMap b KM.map mapWithKey :: (Key -> a -> b) -> KeyMap a -> KeyMap b #if MIN_VERSION_aeson(2,1,0) mapWithKey :: forall a b. (Key -> a -> b) -> KeyMap a -> KeyMap b mapWithKey = forall a b. (Key -> a -> b) -> KeyMap a -> KeyMap b KM.mapWithKey #else mapWithKey f = KM.fromMap . M.mapWithKey f . KM.toMap #endif traverseWithKey :: Applicative f => (Key -> v1 -> f v2) -> KeyMap v1 -> f (KeyMap v2) traverseWithKey :: forall (f :: * -> *) v1 v2. Applicative f => (Key -> v1 -> f v2) -> KeyMap v1 -> f (KeyMap v2) traverseWithKey = forall (f :: * -> *) v1 v2. Applicative f => (Key -> v1 -> f v2) -> KeyMap v1 -> f (KeyMap v2) KM.traverseWithKey foldr :: (a -> b -> b) -> b -> KeyMap a -> b foldr :: forall a b. (a -> b -> b) -> b -> KeyMap a -> b foldr = forall a b. (a -> b -> b) -> b -> KeyMap a -> b KM.foldr foldr' :: (a -> b -> b) -> b -> KeyMap a -> b foldr' :: forall a b. (a -> b -> b) -> b -> KeyMap a -> b foldr' = forall a b. (a -> b -> b) -> b -> KeyMap a -> b KM.foldr' foldl :: (b -> a -> b) -> b -> KeyMap a -> b foldl :: forall b a. (b -> a -> b) -> b -> KeyMap a -> b foldl = forall b a. (b -> a -> b) -> b -> KeyMap a -> b KM.foldl foldl' :: (b -> a -> b) -> b -> KeyMap a -> b foldl' :: forall b a. (b -> a -> b) -> b -> KeyMap a -> b foldl' = forall b a. (b -> a -> b) -> b -> KeyMap a -> b KM.foldl' foldMapWithKey :: Monoid m => (Key -> a -> m) -> KeyMap a -> m foldMapWithKey :: forall m a. Monoid m => (Key -> a -> m) -> KeyMap a -> m foldMapWithKey = forall m a. Monoid m => (Key -> a -> m) -> KeyMap a -> m KM.foldMapWithKey foldrWithKey :: (Key -> v -> a -> a) -> a -> KeyMap v -> a foldrWithKey :: forall v a. (Key -> v -> a -> a) -> a -> KeyMap v -> a foldrWithKey = forall v a. (Key -> v -> a -> a) -> a -> KeyMap v -> a KM.foldrWithKey keys :: KeyMap v -> [Key] keys :: forall v. KeyMap v -> [Key] keys = forall v. KeyMap v -> [Key] KM.keys filter :: (v -> Bool) -> KeyMap v -> KeyMap v filter :: forall v. (v -> Bool) -> KeyMap v -> KeyMap v filter = forall v. (v -> Bool) -> KeyMap v -> KeyMap v KM.filter filterWithKey :: (Key -> v -> Bool) -> KeyMap v -> KeyMap v filterWithKey :: forall v. (Key -> v -> Bool) -> KeyMap v -> KeyMap v filterWithKey = forall v. (Key -> v -> Bool) -> KeyMap v -> KeyMap v KM.filterWithKey mapMaybe :: (a -> Maybe b) -> KeyMap a -> KeyMap b mapMaybe :: forall a b. (a -> Maybe b) -> KeyMap a -> KeyMap b mapMaybe = forall a b. (a -> Maybe b) -> KeyMap a -> KeyMap b KM.mapMaybe mapMaybeWithKey :: (Key -> v -> Maybe u) -> KeyMap v -> KeyMap u mapMaybeWithKey :: forall v u. (Key -> v -> Maybe u) -> KeyMap v -> KeyMap u mapMaybeWithKey = forall v u. (Key -> v -> Maybe u) -> KeyMap v -> KeyMap u KM.mapMaybeWithKey #endif