package main import "fmt" // Self-referential type. type T *T // Mutually recursive types. type T1 *T2 type T2 *T1 // Mutually recursive struct types. type S1 struct { p_s2 *S2 } type S2 struct { p_s1 *S1 } func main () { fmt.Println ("Shall we?") var t T fmt.Println (t) var s1 S1 var s2 S2 fmt.Println (s1) fmt.Println (s2) }