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