CanonOp:
| "eq"
| "ne"
| "gt"
| "gte"
| "lt"
| "lte"
| "in"
| "notIn"
| "like"
| "notLike"
| "iLike"
| "notILike"
| "between"
| "notBetween"
| "isNull"
| "isNotNull"
| "startsWith"
| "notStartsWith"
| "endsWith"
| "notEndsWith"
| "substring"
| "notSubstring"
| "regexp"
| "notRegexp"
Canonical comparison operators, normalized from both the
Op.*symbol operators and the$and/$or/$notstring keys so each dialect only has to render one small, stable set.