<!-- ##### SECTION Title ##### -->
FoNode

<!-- ##### SECTION Short_Description ##### -->


<!-- ##### SECTION Long_Description ##### -->
<para>

</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### STRUCT FoNode ##### -->
<para>

</para>


<!-- ##### ARG FoNode:first-child ##### -->
<para>

</para>

<!-- ##### ARG FoNode:next-sibling ##### -->
<para>

</para>

<!-- ##### ARG FoNode:parent ##### -->
<para>

</para>

<!-- ##### STRUCT FoNodeClass ##### -->
<para>

</para>


<!-- ##### FUNCTION fo_node_new ##### -->
<para>

</para>

@Returns: 


<!-- ##### USER_FUNCTION FoNodeTraverseFunc ##### -->
<para>

</para>

@fo_node: 
@data: 
@Returns: 


<!-- ##### USER_FUNCTION FoNodeForeachFunc ##### -->
<para>

</para>

@fo_node: 
@data: 


<!-- ##### MACRO FO_NODE_IS_ROOT ##### -->
<para>

</para>

@fo_node: 


<!-- ##### MACRO FO_NODE_IS_LEAF ##### -->
<para>

</para>

@fo_node: 


<!-- ##### FUNCTION fo_node_get_ancestor_or_self_by_type ##### -->
<para>

</para>

@node: 
@type: 
@Returns: 


<!-- ##### FUNCTION fo_node_get_ancestor_or_self_by_name ##### -->
<para>

</para>

@node: 
@name: 
@Returns: 


<!-- ##### FUNCTION fo_node_get_child_by_type ##### -->
<para>

</para>

@node: 
@type: 
@Returns: 


<!-- ##### FUNCTION fo_node_get_child_by_name ##### -->
<para>

</para>

@node: 
@name: 
@Returns: 


<!-- ##### FUNCTION fo_node_insert ##### -->
<para>

</para>

@parent: 
@position: 
@fo_node: 
@Returns: 


<!-- ##### FUNCTION fo_node_insert_before ##### -->
<para>

</para>

@parent: 
@sibling: 
@fo_node: 
@Returns: 


<!-- ##### FUNCTION fo_node_insert_after ##### -->
<para>

</para>

@parent: 
@sibling: 
@fo_node: 
@Returns: 


<!-- ##### FUNCTION fo_node_prepend ##### -->
<para>

</para>

@parent: 
@fo_node: 
@Returns: 


<!-- ##### MACRO fo_node_n_nodes ##### -->
<para>

</para>

@root: 
@flags: 


<!-- ##### MACRO fo_node_get_root ##### -->
<para>

</para>

@root: 


<!-- ##### MACRO fo_node_is_ancestor ##### -->
<para>

</para>

@fo_node: 
@descendant: 


<!-- ##### MACRO fo_node_depth ##### -->
<para>

</para>

@fo_node: 


<!-- ##### FUNCTION fo_node_append ##### -->
<para>

</para>

@parent: 
@fo_node: 
@Returns: 


<!-- ##### FUNCTION fo_node_traverse ##### -->
<para>

</para>

@root: 
@order: 
@flags: 
@max_depth: 
@func: 
@data: 


<!-- ##### MACRO fo_node_max_height ##### -->
<para>

</para>

@root: 


<!-- ##### FUNCTION fo_node_children_foreach ##### -->
<para>

</para>

@fo_node: 
@flags: 
@func: 
@data: 


<!-- ##### MACRO fo_node_reverse_children ##### -->
<para>

</para>

@fo_node: 


<!-- ##### MACRO fo_node_n_children ##### -->
<para>

</para>

@fo_node: 


<!-- ##### MACRO fo_node_nth_child ##### -->
<para>

</para>

@fo_node: 
@n: 


<!-- ##### MACRO fo_node_last_child ##### -->
<para>

</para>

@fo_node: 


<!-- ##### MACRO fo_node_child_position ##### -->
<para>

</para>

@fo_node: 
@child: 


<!-- ##### MACRO fo_node_first_sibling ##### -->
<para>

</para>

@fo_node: 


<!-- ##### MACRO fo_node_last_sibling ##### -->
<para>

</para>

@fo_node: 


<!-- ##### MACRO fo_node_prev_sibling ##### -->
<para>

</para>

@fo_node: 


<!-- ##### FUNCTION fo_node_next_sibling ##### -->
<para>

</para>

@fo_node: 
@Returns: 


<!-- ##### FUNCTION fo_node_first_child ##### -->
<para>

</para>

@fo_node: 
@Returns: 


<!-- ##### FUNCTION fo_node_parent ##### -->
<para>

</para>

@fo_node: 
@Returns: 


<!-- ##### MACRO fo_node_unlink ##### -->
<para>

</para>

@fo_node: 


<!-- ##### FUNCTION fo_node_unlink_with_next_siblings ##### -->
<para>

</para>

@fo_node: 


<!-- ##### FUNCTION fo_node_insert_with_next_siblings ##### -->
<para>

</para>

@parent: 
@position: 
@fo_node: 
@Returns: 


<!-- ##### FUNCTION fo_node_debug_dump_tree ##### -->
<para>

</para>

@fo_node: 
@depth: 


