anchor.diff:  ----
   include::{projectdir}/src/spec/test/OperatorsTest.groovy[tags=simple_relational_op,indent=0]
   ----
  +
  +Both `===` and `!==` are supported which are the same as calling the `is()` method,
  +and negating a call to the `is()` method respectively.
  +
  +[source,groovy]
  +--------------------------------------
  +import groovy.transform.EqualsAndHashCode
  +
  +@EqualsAndHashCode
  +class Creature { String type }
  +
  +def cat = new Creature(type: 'cat')
  +def copyCat = cat
  +def lion = new Creature(type: 'cat')
  +
  +assert cat.equals(lion) // Java logical equality
  +assert cat == lion      // Groovy shorthand operator
  +
  +assert cat.is(copyCat)  // Groovy identity
  +assert cat === copyCat  // operator shorthand
  +assert cat !== lion     // negated operator shorthand
  +--------------------------------------
   
   == Logical operators
   
  
positive.code: | 14 | `? :` | ternary conditional
  |    | `?:` | elvis operator
  | 15 | `=` &#160; `\**=` &#160; `*=` &#160; `/=` &#160; `%=` &#160; `+=` &#160; `-=` &#160; +
  `pass:[<<=]` &#160; `>>=` &#160; `>>>=` &#160; `&=` &#160; `^=` &#160; `\|=` | various assignments
  |======================
  
  [[Operator-Overloading]]
  
negative.code: |   | `.` &#160; `.&` &#160; `.@` | member access, method closure, field/attribute access
  |   | `?.` &#160; `\*` &#160; `*.` &#160; `*:` | safe dereferencing, spread, spread-dot, spread-map
  |   | `~` &#160; `!` &#160; `(type)` | bitwise negate/pattern, not, typecast
  |   | `[]` &#160; `?[]` &#160; `++` &#160; `--` | list/map/array (safe) index, post inc/decrement
  | 2 | `**` | power
  | 3 | `++` &#160; `--` &#160; `+` &#160; `-` | pre inc/decrement, unary plus, unary minus
  | 4 | `*` &#160; `/` &#160; `%` | multiply, div, remainder
  | 5 | `+` &#160; `-` | addition, subtraction
  | 6 | `<<` &#160; `>>` &#160; `>>>` &#160; `..` &#160; `..<` | left/right (unsigned) shift, inclusive/exclusive range
  | 7 | `<` &#160; `\<=` &#160; `>` &#160; `>=` &#160; `in` &#160; `!in` &#160; `instanceof` &#160; `!instanceof` &#160; `as` | less/greater than/or equal, in, not in, instanceof, not instanceof, type coercion
  | 8 | `==` &#160; `!=` &#160; `pass:[<=>]` &#160; `===` &#160; `!==` | equals, not equals, compare to, identical to, not identical to
  |   | `=~` &#160; `==~` | regex find, regex match
  | 9 | `&` | binary/bitwise and
  | 10 | `^` | binary/bitwise xor
  