separated UnaryExpr, BinaryExpr from UnaryPred, BinaryPred, the latter being good for filter, the former useful for result expressions