class SyntaxTree::IfNode

def copy(predicate: nil, statements: nil, consequent: nil, location: nil)

def copy(predicate: nil, statements: nil, consequent: nil, location: nil)
  node =
    IfNode.new(
      predicate: predicate || self.predicate,
      statements: statements || self.statements,
      consequent: consequent || self.consequent,
      location: location || self.location
    )
  node.comments.concat(comments.map(&:copy))
  node
end