let rec collect_labels ls = function | Pnamed(l,p) -> collect_labels (l::ls) p | p -> List.rev ls , p