@define consume1(g) { @local x; x = g(); if(x != nil) printf("guardian returned %a\n", x); else printf("guardian is empty\n"); return x; } g = mkguardian(); s = "abc"; g(s); g(s); g([1,2,3]); consume1(g); s = nil; gc(0,0); while(consume1(g) != nil) ;