packages feed

hydra-0.12.0: src/main/haskell/Hydra/Lib/Maps.hs

-- | Haskell implementations of hydra.lib.maps primitives

module Hydra.Lib.Maps where

import qualified Data.Map as M


alter :: Ord k => (Maybe v -> Maybe v) -> k -> M.Map k v -> M.Map k v
alter = M.alter

bimap :: (Ord k1, Ord k2) => (k1 -> k2) -> (v1 -> v2) -> M.Map k1 v1 -> M.Map k2 v2
bimap f g = M.fromList . fmap (\(k, v) -> (f k, g v)) . M.toList

elems :: M.Map k v -> [v]
elems = M.elems

empty :: M.Map k v
empty = M.empty

filter :: Ord k => (v -> Bool) -> M.Map k v -> M.Map k v
filter = M.filter

filterWithKey :: Ord k => (k -> v -> Bool) -> M.Map k v -> M.Map k v
filterWithKey = M.filterWithKey

findWithDefault :: Ord k => v -> k -> M.Map k v -> v
findWithDefault = M.findWithDefault

fromList :: Ord k => [(k, v)] -> M.Map k v
fromList = M.fromList

insert :: Ord k => k -> v -> M.Map k v -> M.Map k v
insert = M.insert

keys :: M.Map k v -> [k]
keys = M.keys

lookup :: Ord k => k -> M.Map k v -> Maybe v
lookup = M.lookup

map :: (v1 -> v2) -> M.Map k v1 -> M.Map k v2
map = fmap

mapKeys :: (Ord k1, Ord k2) => (k1 -> k2) -> M.Map k1 v -> M.Map k2 v
mapKeys = M.mapKeys

member :: Ord k => k -> M.Map k v -> Bool
member = M.member

null :: M.Map k v -> Bool
null = M.null

remove :: Ord k => k -> M.Map k v -> M.Map k v
remove = M.delete

singleton :: k -> v -> M.Map k v
singleton = M.singleton

size :: M.Map k v -> Int
size = M.size

toList :: M.Map k v -> [(k, v)]
toList = M.toList

union :: Ord k => M.Map k v -> M.Map k v -> M.Map k v
union = M.union