# Suppose you have a fiber that yields chunks of paginated api results:
(def api-results (fiber/new (fn  (yield [1 2 3]) (yield [4 5 6]))))
# Using :iterate, the right side of the binding is evaluated each time the loop is run,
# which allows for running a side-effecting expression that may be different each time.
(loop [_ :iterate (fiber/can-resume? api-results)] (pp (resume api-results)))
# This example can be simplified using :generate
(loop [chunk :generate api-results] (pp chunk))