You could put this in a lambda so you can make a function to pass around, if you don't want to yield so much, though I suppose that could make the apis confusing :write vs. :call