1 // Copyright 2021 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package main 6 7 type Box[A any] struct { 8 value A 9 } 10 11 func Nest[A /* ERROR "instantiation cycle" */ any](b Box[A], n int) interface{} { 12 if n == 0 { 13 return b 14 } 15 return Nest(Box[Box[A]]{b}, n-1) 16 } 17 18 func main() { 19 Nest(Box[int]{0}, 10) 20 } 21