HTree.String has some convenience functions for dealing with outlines and trees whose nodes are labeled by strings.
Compute the string representation of a tree labeled by strings
> toString t
"*\nA\n p\n 1\n 2\n 3\n q\nB\n r\n s\nC" : StringCompute the string representation of a tree labeled by strings; omit the root label
> toOutline t
"A\n p\n 1\n 2\n 3\n q\nB\n r\n s\nC" : StringCompute the level of a string: the number of leading spaces, divided by 2