module YamlUnscrambler.Util.Vector where

import Data.Vector
import YamlUnscrambler.Prelude as Prelude hiding (lookup)

lookupFirst :: [Int] -> Vector a -> Maybe (Int, a)
lookupFirst :: forall a. [Int] -> Vector a -> Maybe (Int, a)
lookupFirst [Int]
keys Vector a
vector =
  forall a. First a -> Maybe a
getFirst (forall (t :: * -> *) m a.
(Foldable t, Monoid m) =>
(a -> m) -> t a -> m
Prelude.foldMap (\Int
k -> forall a. Maybe a -> First a
First (forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Int
k,) (Vector a
vector forall a. Vector a -> Int -> Maybe a
!? Int
k))) [Int]
keys)