func main() x := 123 nums : @[Int] do defer nums.insert(x) x = 999 >> nums = @[123] >> x = 999 defer say("All done!") for word in ["first", "second", "third"] defer say("Got $word deferred") if word == "second" say("") skip else if word == "third" say("") stop for i in 3 defer say("Inner loop deferred $i") if i == 2 say("") skip else if i == 3 say("") stop say("Made it through inner loop") say("Made it through the loop") >> thunk := func(return_early=no) say("Entering thunk") defer say("Deferred thunk cleanup") if return_early say("Returning early...") return say("Finished thunk") >> thunk(no) >> thunk(yes) >> defer_func(yes) >> defer_func(no) >> counter := make_counter() >> counter() = 1 >> counter() = 2 >> counter() = 3 func defer_func(return_early=no) say("Entering defer_func") defer say("Deferred defer_func cleanup") if return_early say("Returning early...") return say("Finished defer_func") func make_counter(->func(->Int)) i := 1 return func() defer i += 1 return i