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