pub fn fold_data<F>(f: &mut F, node: Data) -> Datawhere
    F: Fold + ?Sized,