method roots =
    let l = ref [] in
    self#iter_nodes (fun n -> if self#is_root n then l := n::!l);
    !l