The WITH clause every builder carries. A field rather than a base class, so with and recursive return each builder's own type.
WITH
with
recursive
Adds one common table expression; query is its body without the parentheses.
Copies other's contents into this clause, so a builder's copy() shares no list with its source.
copy()
Renders the clause with its trailing newline, or nothing at all where no CTE was added.