pub fn matches_type<V: TypeContractValue>( value: &V, expected: &TypeExpr, type_params: &[String], nominal_type_names: &[String], ) -> bool