The following standard comparison operators are supported in GEL and have the obvious meaning:
`==`

, `>=`

,
`<=`

, `!=`

,
`<>`

, `<`

,
`>`

. They return `true`

or
`false`

.
The operators
`!=`

and `<>`

are the same
thing and mean "is not equal to".
GEL also supports the operator
`<=>`

, which returns -1 if left side is
smaller, 0 if both sides are equal, 1 if left side is larger.

Normally `=`

is translated to `==`

if
it happens to be somewhere where GEL is expecting a condition such as
in the if condition. For example

if a=b then c if a==b then c

are the same thing in GEL. However you should really use
`==`

or `:=`

when you want to compare
or assign respectively if you want your code to be easy to read and
to avoid mistakes.

All the comparison operators (except for the
`<=>`

operator, which
behaves normally), are not strictly binary operators, they can in fact
be grouped in the normal mathematical way, e.g.:
(`1<x<=y<5`

) is
a legal boolean expression and means just what it should, that is
(1<x and x≤y and y<5)

To build up logical expressions use the words `not`

,
`and`

, `or`

, `xor`

.
The operators `or`

and `and`

are
special beasts as they evaluate their arguments one by one, so the usual trick
for conditional evaluation works here as well. For example, `1 or a=1`

will not set
`a=1`

since the first argument was true.