pub fn fold_where_predicate<F>(
    f: &mut F,
    node: WherePredicate
) -> WherePredicate where
    F: Fold + ?Sized