applicative combinators for boolean operations