fn push_signed_value<T: Display + PartialOrd>(s: &mut String, value: T, zero: T)