'return a \'grouping\' construct as per the ClauseElement
specification.
This produces an element that can be embedded in an expression. Note
that this method is called automatically as needed when constructing
expressions and should not require explicit use.'

def self_group(self, against=None):

    if isinstance(against, CompoundSelect):
        return self
    return FromGrouping(self)
