filter p xs = [ x | x <- xs, p x]
>>> filter odd [1, 2, 3] [1,3]
filter = ( mfilter :: (a -> Bool) -> [a] -> [a] )
>>> mfilter odd (Just 1) Just 1 >>> mfilter odd (Just 2) Nothing