//! Top-level comma splitting for procedure argument lists.
//!
//! Split from `procedures.rs` (200-LoC ceiling). Small, but a genuinely
//! separate concern: `procedures.rs` decides what an argument *means*,
//! this decides where one *ends*.
/// Splits an argument list on top-level commas only, so a
/// parametric type's own argument list (`Geography(Polygon, 4326)`,
/// cratestack#842) stays within a single segment instead of being
/// torn in half. Segments are returned with separators removed and
/// in source order, so the caller's `segment.len() + 1` offset walk
/// is unchanged.
pub