func TestLazy(t *testing.T) { … } func TestLazyThroughput(t *testing.T) { … } type sequence … func newSequence(n int) sequence { … } func (s sequence) Start() { … } func (s sequence) Step(n int) { … } // asyncGet runs a goroutine to do the get so it doesn't block. func asyncGet[T any](t *testing.T, seq sequence, z *synctrack.Lazy[T], pre, post int) func() T { … } func TestLazySlowEval(t *testing.T) { … } func TestLazySlowEval2(t *testing.T) { … } func TestLazyOnlyOnce(t *testing.T) { … } func TestLazyError(t *testing.T) { … }