# `|`

filter

The ` | `

filter has the syntax:
left|right

where

and *left*

are each filters. The *right*

and *left*

arguments must each be set filters.
*right*

The `|`

filter is a set filter whose
value is the union of the sets of squares represented by its arguments.

For example,

pin | {R attacks k}

Is the set of squares on which there is either a pinned
piece or there a white rook attacking the black king.
The

argument to the *left*`|`

filter is pin whose value is the set of squares on which there is a pinned piece. The

argumnet to the *right*`|`

filter is `{R attacks k}`

, whose value is the set of squares
on which there is a white rook which attacks the black king. The value of the `|`

filter is the union of these two sets.

# Examples

The`|`

filter is used throughout the examples. It is used extensively in the puremate.cql, idealmate.cql and the like.
It is used in turton.cql to make sure neither the pieces `Front`

nor `Side`

move:
not move from (Front | Side)