pub fn fold_pattern<U, F>( folder: &mut F, node: Pattern<U>, ) -> Result<Pattern<<F as Fold<U>>::TargetU>, <F as Fold<U>>::Error>where F: Fold<U> + ?Sized,