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)