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