module YamlUnscrambler.Util.HashMap where

import Data.HashMap.Strict
import YamlUnscrambler.Prelude hiding (lookup)

lookupFirst :: (Hashable k) => [k] -> HashMap k v -> Maybe (k, v)
lookupFirst :: forall k v. Hashable k => [k] -> HashMap k v -> Maybe (k, v)
lookupFirst [k]
keys HashMap k v
map =
  forall a. First a -> Maybe a
getFirst (forall (t :: * -> *) m a.
(Foldable t, Monoid m) =>
(a -> m) -> t a -> m
foldMap (\k
k -> forall a. Maybe a -> First a
First (forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (k
k,) (forall k v. (Eq k, Hashable k) => k -> HashMap k v -> Maybe v
lookup k
k HashMap k v
map))) [k]
keys)