package aliases type ( T0 [10]int T1 []byte T2 struct { x int } T3 interface { m() T2 } T4 func(int, T0) chan T2 ) // basic aliases type ( Ai = int A0 = T0 A1 = T1 A2 = T2 A3 = T3 A4 = T4 A10 = [10]int A11 = []byte A12 = struct { x int } A13 = interface { m() A2 } A14 = func(int, A0) chan A2 ) // alias receiver types func (T0) m1() {} func (A0) m2() {} // alias receiver types (long type declaration chains) type ( V0 = V1 V1 = (V2) V2 = (V3) V3 = T0 ) func (V1) n() {} // cycles type C0 struct { f1 C1 f2 C2 } type ( C1 *C0 C2 = C1 ) type ( C5 struct { f *C6 } C6 = C5 )