 
     # This tells us how strongly bound together the node is.
     # As in, because `x+y*z` is parsed as `x+(y*z)`, `*` binds more closely than `+` does.
-    # When we want to express `(x+y)*z`, we put the `x+y` Add node inside a Bracket
+    # When we want to express `(x+y)*z`, we put the `x+y` prettyRender.Add node inside a Bracket
     # node, which binds very tightly.
     #
     # @return [Number] Binding strength.



  # Drawing node representing a surd/root.
  class Surd extends DrawingNode

    # Make a new surd drawing node.
    #
    # @param contents [DrawingNode] The node to draw inside the root.
    # @param power [Number] Optional. The number of this root. For example, 2 for a sqrt and 3 for a cbrt.
    constructor: (@contents, @power = null) ->

    # Draw the node as a LaTeX string.


    # Wraps the node in brackets if a node has lower precedence than this node.
    #
    # @param child [prettyRender.DrawingNode] The node to (potentially) bracket.
    # @return [prettyRender.DrawingNode] The bracketed child, or the original child.
    bracketIfNeeded: (child) ->
      if child.bindingStrength() <= @bindingStrength()
        return new prettyRender.Bracket(child)
      return child

  # Make a new drawing node from terms.
  #
  # @param terms... [Array<prettyRender.DrawingNode>] An array of terms to make into a drawing node.
  # @return [prettyRender.DrawingNode] A new drawing node from the terms provided.
  prettyRender.DrawingNode.makeWithBrackets = (terms...) ->
    node = new this()
    terms = terms.map((x) ->
        if x.bindingStrength() <= node.bindingStrength()
          return new prettyRender.Bracket(x)
        else
          return x)
    node.terms = terms
    return node

  # Drawing node representing addition.
  class prettyRender.Add extends prettyRender.DrawingNode

    # Make a new prettyRender.Add drawing node.
    #
    # @param terms... [Array<prettyRender.DrawingNode>] Drawing nodes to add together.
    # @return [prettyRender.Add] A new addition drawing node.
    constructor: (@terms...) ->

    # How strongly bound the node is.
