class_docstr: Extension of the stringPict class that knows about basic math applications,
  optimizing double minus signs.
  
  "Binding" is interpreted as follows::
  
      ATOM this is an atom: never needs to be parenthesized
      FUNC this is a function application: parenthesize if added (?)
      DIV  this is a division: make wider division if divided
      POW  this is a power: only parenthesize if exponent
      MUL  this is a multiplication: parenthesize if powered
      ADD  this is an addition: parenthesize if multiplied or powered
      NEG  this is a negative number: optimize if added, parenthesize if
           multiplied or powered
      OPEN this is an open object: parenthesize if added, multiplied, or
           powered (example: Piecewise)
class_docstr_tok: ["Extension","of","the","stringPict","class","that","knows","about","basic","math","applications",",","optimizing","double","minus","signs",".","``","Binding","''","is","interpreted","as","follows",":",":","ATOM","this","is","an","atom",":","never","needs","to","be","parenthesized","FUNC","this","is","a","function","application",":","parenthesize","if","added","(","?",")","DIV","this","is","a","division",":","make","wider","division","if","divided","POW","this","is","a","power",":","only","parenthesize","if","exponent","MUL","this","is","a","multiplication",":","parenthesize","if","powered","ADD","this","is","an","addition",":","parenthesize","if","multiplied","or","powered","NEG","this","is","a","negative","number",":","optimize","if","added",",","parenthesize","if","multiplied","or","powered","OPEN","this","is","an","open","object",":","parenthesize","if","added",",","multiplied",",","or","powered","(","example",":","Piecewise",")"]
docstr: Make a pretty addition.
  Addition of negative numbers is simplified.
docstr_tok: ["Make","a","pretty","addition",".","Addition","of","negative","numbers","is","simplified","."]
code: def __add__(self, *others):
      """Make a pretty addition.
      Addition of negative numbers is simplified.
      """
      arg = self
      if arg.binding > prettyForm.NEG:
          arg = stringPict(*arg.parens())
      result = [arg]
      for arg in others:
          # add parentheses for weak binders
          if arg.binding > prettyForm.NEG:
              arg = stringPict(*arg.parens())
          # use existing minus sign if available
          if arg.binding != prettyForm.NEG:
              result.append(" + ")
          result.append(arg)
      return prettyForm(
          binding=prettyForm.ADD, *stringPict.next(*result)
      )
  
imports: import shutil
  from .pretty_symbology import hobj, vobj, xsym, xobj, pretty_use_unicode, line_width, center
  from sympy.utilities.exceptions import sympy_deprecation_warning
label_desc: Use image node_id 3 for calling the prettyForm obj's underlying member method code with example usage: obj.__add__() and returns: prettyForm