import Data.Vector as V import Data.Set as Set main :: IO () main = putStr $ show $ insertZeroes (Set.fromList [1,3, 5]) (V.fromList [1..10]) insertZeroes :: Set Int -> Vector Int -> Vector Int insertZeroes v xs = V.foldMap f $ indexed xs where f :: (Int, Int) -> Vector Int f (idx, x) | Set.member idx v = V.fromList [0, x] | otherwise = V.singleton x