Explain filter combinators and their semantics