fn fun_type_parameters_compatibile(
    old_type_parameters: &[AbilitySet],
    new_type_parameters: &[AbilitySet],
) -> bool {
    old_type_parameters.len() == new_type_parameters.len()
        && old_type_parameters.iter().zip(new_type_parameters).all(
            |(old_type_parameter_constraint, new_type_parameter_constraint)| {
                type_parameter_constraints_compatibile(
                    *old_type_parameter_constraint,
                    *new_type_parameter_constraint,
                )
            },
        )
}
// When upgrading, the new type parameters must be the same length, and the new type parameter
// constraints must be compatible
When upgrading, the new type parameters must be the same length, and the new type parameter
constraints must be compatible
When upgrading the new type parameters must be the same length and the new type parameter constraints must be compatible
fn fun_type_parameters_compatibile(
    old_type_parameters: &[AbilitySet],
    new_type_parameters: &[AbilitySet],
) -> bool {
    old_type_parameters.len() == new_type_parameters.len()
        && old_type_parameters.iter().zip(new_type_parameters).all(
            |(old_type_parameter_constraint, new_type_parameter_constraint)| {
                type_parameter_constraints_compatibile(
                    *old_type_parameter_constraint,
                    *new_type_parameter_constraint,
                )
            },
        )
}
fn fun_type_parameters_compatibile ( old_type_parameters : & [ AbilitySet ] , new_type_parameters : & [ AbilitySet ] , ) -> bool { old_type_parameters . len ( ) == new_type_parameters . len ( ) && old_type_parameters . iter ( ) . zip ( new_type_parameters ) . all ( | ( old_type_parameter_constraint , new_type_parameter_constraint ) | { type_parameter_constraints_compatibile ( * old_type_parameter_constraint , * new_type_parameter_constraint , ) } , ) }
When upgrading, the new type parameters must be the same length, and the new type parameter
constraints must be compatible
When upgrading the new type parameters must be the same length and the new type parameter constraints must be compatible
old_type_parameters
&[AbilitySet]
new_type_parameters
&[AbilitySet]