'Create a new instance of this class when new Nodes (or subclasses) are
needed in the internal code in this class. Normally, it just shadows
__init__(). However, subclasses with an __init__ signature that aren\'t
an extension of Node.__init__ might need to implement this method to
allow a Node to create a new instance of them (if they have any extra
setting up to do).'

@classmethod
def _new_instance(cls, children=None, connector=None, negated=False):

    obj = Node(children, connector, negated)
    obj.__class__ = cls
    return obj
