sig
  type 'a t = Empty_tree | Node of 'a * 'Tree.t list
  exception Empty_forest
  val sons : 'Tree.t -> 'Tree.t list
  val nth : int -> 'Tree.t -> 'Tree.t
  val label : 'Tree.t -> 'a
  val to_string : 'Tree.t -> ('-> string) -> string
  val to_xml : 'Tree.t -> ('-> string) -> string
  val read : string -> (string -> 'a) -> 'Tree.t
end