filter -package:Cabal -package:text -package:base package:pipes is:exact

(filter predicate) only forwards values that satisfy the predicate.
filter (pure True) = cat

filter (liftA2 (&&) p1 p2) = filter p1 >-> filter p2

filter f = mapMaybe (\a -> a <$ guard (f a))