type TypeParamList … // Len returns the number of type parameters in the list. // It is safe to call on a nil receiver. func (l *TypeParamList) Len() int { … } // At returns the i'th type parameter in the list. func (l *TypeParamList) At(i int) *TypeParam { … } // list is for internal use where we expect a []*TypeParam. // TODO(rfindley): list should probably be eliminated: we can pass around a // TypeParamList instead. func (l *TypeParamList) list() []*TypeParam { … } type TypeList … // newTypeList returns a new TypeList with the types in list. func newTypeList(list []Type) *TypeList { … } // Len returns the number of types in the list. // It is safe to call on a nil receiver. func (l *TypeList) Len() int { … } // At returns the i'th type in the list. func (l *TypeList) At(i int) Type { … } // list is for internal use where we expect a []Type. // TODO(rfindley): list should probably be eliminated: we can pass around a // TypeList instead. func (l *TypeList) list() []Type { … } func bindTParams(list []*TypeParam) *TypeParamList { … }