Используйте `self` в качестве параметра по умолчанию

Могу ли я использоватьself в качестве параметра по умолчанию в Swift? Этот код выглядит довольно простым, но я не понимаю сообщения, которое возвращает компилятор:

func printTree(node: TreeNode = self, tabs: String = "") {
  println(tabs + node.name!)
  node.children.forEach { printTree(node: $0, tabs: tabs+"\t") }
}

Ошибка:

'TreeNode -> () -> TreeNode' is not convertible to 'TreeNode'

А?

Возможно, есть и другие способы решения обхода дерева, но на самом деле мне просто любопытно ограничение по умолчанию для параметров. Это настоящая вещь? Есть ли упоминание об этом в документации? Я не мог найти один.

Обновить:

Я сделал это с нуля без каких-либо зависимостей (у меня был класс heirarchy и обычайforEach патч обезьяны участвовал ранее). Это еще ошибки:

class PeanutButterJelly {
  var children: [PeanutButterJelly]?
  func doDance(){ println("dancing") }
  func everybodyDanceNow(pbj: PeanutButterJelly = self) {
    pbj.doDance()
    if let children = pbj.children {
      for child in children { child.doDance() }
    }
  }
}

Ошибка:

Swift compilation error: unresolved identifier 'self'

Xcode 6.3.2

Ответы на вопрос(2)

Ваш ответ на вопрос