module Indexation.Utils.Unfoldr where import Indexation.Prelude import Indexation.Types import Indexation.Instances import DeferredFolds.Unfoldr import qualified Data.HashMap.Strict as HashMap hashMapAt :: (Hashable a, Eq a) => a -> HashMap a b -> Unfoldr b hashMapAt a = foldable . HashMap.lookup a hashMapValuesByKeys :: (Hashable a, Eq a, Foldable foldable) => foldable a -> HashMap a b -> Unfoldr b hashMapValuesByKeys keys hashMap = do key <- foldable keys hashMapAt key hashMap