pub fn fold_item<T: ?Sized + AstFold>(fold: &mut T, item: Item) -> Result<Item>