Currently we use `<>` and `and` for boolean conjunction, and `or` for boolean disjunction. I propose the following changes: * Add `.&` for conjunction and `.|` for disjunction. `.` acts as a mnemonic for composing predicates and `&`, `|` indicate the boolean `&&`, `||`. * Remove/reimplement `and` and `or` so that they can be used for conjunction or disjunction of a list of predicates * Rename `neg` to `not_` * Remove the Semigroup instance so that there is only one way of using conjunction