func Dereference(T types.Type) types.Type {
	if p, ok := T.Underlying().(*types.Pointer); ok {
		return p.Elem()
	}
	return T
}
func Dereference(T types.Type) types.Type {
	if p, ok := T.Underlying().(*types.Pointer); ok {
		return p.Elem()
	}
	return T
}
func Dereference ( T types . Type ) types . Type { if p , ok := T . Underlying ( ) . ( * types . Pointer ) ; ok { return p . Elem ( ) } return T }
// Dereference returns a pointer's element type; otherwise it returns
// T.
Dereference returns a pointer s element type ; otherwise it returns T .