'Initializer.
Takes a type constant (a symbol number >= 256), a sequence of
child nodes, and an optional context keyword argument.
As a side effect, the parent pointers of the children are updated.'

def __init__(self, type, children, context=None, prefix=None, fixers_applied=None):

    assert (type >= 256), type
    self.type = type
    self.children = list(children)
    for ch in self.children:
        assert (ch.parent is None), repr(ch)
        ch.parent = self
    if (prefix is not None):
        self.prefix = prefix
    if fixers_applied:
        self.fixers_applied = fixers_applied[:]
    else:
        self.fixers_applied = None
