thing: foo Thing.Print: foo is int: 5 is byte: 120 is string: foo is Foo: 18 is Thing: foo is *Thing: foo is *Thing: foo is struct{n int} is struct{n int `foo:"bar"`} is Doubler: 6 is Tuple: 1 7 11 13 Array len: 4 is Tuple: 1 7 11 13 ArrayStruct.Print: 4 3 is Tuple: 0 8 16 24 SmallPair.Print: 3 5 Stringer.String(): foo Stringer.(*Thing).String(): foo s has String() method: foo nested switch: true Byte(): 3 non-blocking call on sometimes-blocking interface slept 1ms slept 1ms type is int type is *int type is **int x is 5