def graph(child_only: false, output: String.new)
      if child_only
        output << "digraph Deferred {\n".freeze
        Enumerator.new{ |yielder|
          graph_child(output: yielder)
        }.lazy.each{|l|
          output << "\t#{l}\n"
        }
        output << '}'.freeze
      else
        ancestor.graph(child_only: true, output: output)
      end
    end
def graph(child_only: false, output: String.new)
      if child_only
        output << "digraph Deferred {\n".freeze
        Enumerator.new{ |yielder|
          graph_child(output: yielder)
        }.lazy.each{|l|
          output << "\t#{l}\n"
        }
        output << '}'.freeze
      else
        ancestor.graph(child_only: true, output: output)
      end
    end
この一連のDeferredチェインの様子を、DOT言語フォーマットで出力する
 ==== Args
 [child_only:]
   _true_ なら、このノードとその子孫のみを描画する。
   _false_ なら、再帰的に親を遡り、そこから描画を開始する。
 [output:]
   このオブジェクトに、 _<<_ メソッドで内容が書かれる。
   省略した場合は、戻り値が _String_ になる。
 ==== Return
 [String] DOT言語によるグラフ
 [output:] 引数 output: に指定されたオブジェクト