Instead of two very similar match conditions, could we do something like the following?  ```rust  let (ordered_params, mut params_present) = defs.params.clone().map(|param| (param, match param.kind { \u2026 })).sort_by_key(|(_, ord)| ord);  params_present.dedup();  ```