///|
fn[T] pdf_print_tree_root(
output : Array[String],
indent : String,
value : T,
get_name : (T) -> String,
get_children : (T) -> Array[T],
) -> Unit {
output.push(get_name(value))
output.push("\n")
let children = get_children(value)
for index in 0.. String,
get_children : (T) -> Array[T],
line_prefix? : String = "",
) -> String {
let output : Array[String] = [line_prefix]
pdf_print_tree_root(output, line_prefix, value, get_name, get_children)
output.join("")
}