pub fn pattern_values_mut<'a, 'ast, Id>(
    fields: &'a mut [PatternField<'ast, Id>]
) -> impl Iterator<Item = (&'a mut Spanned<Id, BytePos>, &'a mut Option<SpannedPattern<'ast, Id>>)>