{-# LANGUAGE TupleSections #-}
-- | A name binding context, or environment.
module Hpp.Env where
import Data.ByteString (ByteString)
import Data.HashMap.Strict (HashMap)
import qualified Data.HashMap.Strict as HashMap

emptyEnv :: HashMap ByteString a
emptyEnv :: HashMap ByteString a
emptyEnv = HashMap ByteString a
forall k v. HashMap k v
HashMap.empty

insertPair :: (ByteString, a) -> HashMap ByteString a -> HashMap ByteString a
insertPair :: (ByteString, a) -> HashMap ByteString a -> HashMap ByteString a
insertPair = (ByteString -> a -> HashMap ByteString a -> HashMap ByteString a)
-> (ByteString, a) -> HashMap ByteString a -> HashMap ByteString a
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry ByteString -> a -> HashMap ByteString a -> HashMap ByteString a
forall k v.
(Eq k, Hashable k) =>
k -> v -> HashMap k v -> HashMap k v
HashMap.insert

deleteKey :: ByteString -> HashMap ByteString a -> HashMap ByteString a
deleteKey :: ByteString -> HashMap ByteString a -> HashMap ByteString a
deleteKey = ByteString -> HashMap ByteString a -> HashMap ByteString a
forall k v. (Eq k, Hashable k) => k -> HashMap k v -> HashMap k v
HashMap.delete

lookupKey :: ByteString -> HashMap ByteString a -> Maybe a
lookupKey :: ByteString -> HashMap ByteString a -> Maybe a
lookupKey = ByteString -> HashMap ByteString a -> Maybe a
forall k v. (Eq k, Hashable k) => k -> HashMap k v -> Maybe v
HashMap.lookup