'Make a pretty multiplication.
Parentheses are needed around +, - and neg.'

def __mul__(self, *others):

    if (len(others) == 0):
        return self
    args = self
    if (args.binding > prettyForm.MUL):
        arg = stringPict(*args.parens())
    result = [args]
    for arg in others:
        result.append(xsym('*'))
        if (arg.binding > prettyForm.MUL):
            arg = stringPict(*arg.parens())
        result.append(arg)
    len_res = len(result)
    for i in range(len_res):
        if ((i < (len_res - 1)) and (result[i] == '-1') and (result[(i + 1)] == xsym('*'))):
            result.pop(i)
            result.pop(i)
            result.insert(i, '-')
    if (result[0][0] == '-'):
        bin = prettyForm.NEG
        if (result[0] == '-'):
            right = result[1]
            if (right.picture[right.baseline][0] == '-'):
                result[0] = '-    '
    else:
        bin = prettyForm.MUL
    return prettyForm(binding=bin, *stringPict.next(*result))
