'Produce a nice root symbol.
Produces ugly results for big n inserts.'

def root(self, n=None):

    result = self.above(('_' * self.width()))
    height = self.height()
    slash = '\n'.join((((('    ' * ((height - i) - 1)) + '/') + ('    ' * i)) for i in range(height)))
    slash = stringPict(slash, (height - 1))
    if (height > 2):
        downline = stringPict('\\    \n    \\', 1)
    else:
        downline = stringPict('\\')
    if ((n is not None) and (n.width() > downline.width())):
        downline = downline.left(('    ' * (n.width() - downline.width())))
        downline = downline.above(n)
    root = downline.right(slash)
    root.baseline = ((result.baseline - result.height()) + root.height())
    return result.left(root)
