* use assert equal instead of null to test closed channel
~ 2 space code indent
~ refactor pipeline into pipelineInternal
~ extract taskFn into argument