Iteratee-based streaming library from a free monad