[UPDATE] changed stream interface. Additional tests.
[UPDATE] remove ambiguous 'this'.
[UPDATE] removed accumulator requirements, as acc could be anything. Depends on use case.
[UPDATE] changed variable name.