Generic monoid based iteratee