let collect_or p = fold_or [] [] p