# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: reentrance
#evalFull
-- in.cue --
// This indirection is needed to avoid binding references to fib
// within fib to the instantiated version.
fibRec: {nn: int, out: (fib & {n: nn}).out}
fib: {
	n: int

	if n >= 2 {
		out: (fibRec & {nn: n - 2}).out + (fibRec & {nn: n - 1}).out
	}
	if n < 2 {
		out: n
	}
}
fib2:  (fib & {n: 2}).out
fib7:  (fib & {n: 7}).out
fib12: (fib & {n: 12}).out
-- out/def --
// This indirection is needed to avoid binding references to fib
// within fib to the instantiated version.
fibRec: {
	nn:  int
	out: (fib & {
		n: nn
	}).out
}
fib: {
	n: int
	if n >= 2 {
		out: (fibRec & {
			nn: n - 2
		}).out + (fibRec & {
			nn: n - 1
		}).out
	}
	if n < 2 {
		out: n
	}
}
fib2:  1
fib7:  13
fib12: 144
-- out/legacy-debug --
<0>{fibRec: <1>{nn: int, out: (<2>.fib & <3>{n: <4>.nn}).out}, fib: <5>{n: int if (<6>.n >= 2) yield <7>{out: ((<2>.fibRec & <8>{nn: (<6>.n - 2)}).out + (<2>.fibRec & <9>{nn: (<6>.n - 1)}).out)},  if (<6>.n < 2) yield <10>{out: <6>.n}}, fib2: 1, fib7: 13, fib12: 144}
