let rec collect_exists xs = function
  | Pexists(x,p) -> collect_exists (x::xs) p
  | p -> List.rev xs , p