let rec collect_and ps = function
  | Fol.Pand(a,b) -> collect_and (collect_and ps b) a
  | p -> p :: ps