module Language.Core.Env (eempty,
elookup,
eextend,
edomain,
efromlist,
etolist,
efilter,
eremove)
where
import qualified Data.Map as M
eempty :: M.Map a b
eempty = M.empty
elookup :: (Eq a, Ord a) => M.Map a b -> a -> Maybe b
elookup l k = M.lookup k l
eextend :: Ord a => M.Map a b -> (a,b) -> M.Map a b
eextend l (k,d) = (M.insert k d l)
edomain :: (Eq a) => M.Map a b -> [a]
edomain l = M.keys l
efromlist :: Ord a => [(a,b)] -> M.Map a b
efromlist = M.fromList
etolist :: M.Map a b -> [(a,b)]
etolist l = M.toList l
eremove :: (Eq a, Ord a) => M.Map a b -> a -> M.Map a b
eremove l k = (M.delete k l)
efilter :: Ord a => M.Map a b -> (a -> Bool) -> M.Map a b
efilter l p = (M.filterWithKey (\ k _ -> p k) l)