pub fn substitute_footprint(&mut self, type_actuals: &[Type]) {
        for t in self.types.iter_mut() {
            *t = t.instantiate(type_actuals)
        }
    }
/// Substitue the open types in self.types with caller `type_actuals`
Substitue the open types in self.types with caller `type_actuals`
Substitue the open types in self . types with caller ` type_actuals `
pub fn substitute_footprint(&mut self, type_actuals: &[Type]) {
        for t in self.types.iter_mut() {
            *t = t.instantiate(type_actuals)
        }
    }
pub fn substitute_footprint ( & mut self , type_actuals : & [ Type ] ) { for t in self . types . iter_mut ( ) { * t = t . instantiate ( type_actuals ) } }
Substitue the open types in self.types with caller `type_actuals`
Substitue the open types in self . types with caller ` type_actuals `
&mut self
type_actuals
&[Type]