filter :: (a -> Bool) -> [a] -> [a]
filter pred ls = [e | e <- ls, pred e]

addPairs :: [(Integer, Integer)] -> [Integer]
addPairs lop = [ x+y | (x,y) <- lop]

myMap f ls = [f x | x <- ls]

addLists :: [Integer] -> [Integer] -> [Integer]
addLists as bs = addPairs (zip as bs)

findIndicies f ls = [ y | (x,y) <- (zip ls [0 ..]), f x]
