   # Is this an empty block of code?
   empty: ->
     @expressions.length is 0
-
-  # Make a copy of this node.
-  copy: ->
-    new Expressions @Expressions.slice()
 
   # An Expressions node does not return its entire body, rather it
   # ensures that the final expression is returned.

  # scope boundaries.
  contains: (block) ->
    contains: false
    @_traverse_children false, (node, attr, index) =>
      if block(node)
        contains: true
        return false
    return contains

  # Is this node of a certain type, or does it contain the type?
  contains_type: (type) ->

  (klass::is_pure_statement: -> true) if only

children: (klass, child_attrs...) ->
  klass::children_attributes: child_attrs

#### BaseNode

