code: @Override
      public BooleanExpression not() {
          if (not == null) {
              // uses this, because it makes unwrapping easier
              not = Expressions.booleanOperation(Ops.NOT, this);
          }
          return not;
      }
docs: Create a {@code !this} expression
  
  <p>Returns a negation of this boolean expression</p>
  
  @return !this