A - negates the value on top of the integer stack, + isn't a valid operator, or atleast it's not listed.
And | will operate on the integer stack values, while 'or' operates on the boolean stack. (Since it's 2 conditions they'll be in the boolean stack)
And the 'and' isn't nesesary when in the condition part of a gene because all conditions in that area get and'ed, but when using inline conditions you would need it.