mucking around with iteratee-ish producer/consumer types